你怎么在C中’realloc’?

我怎样才能在C中重新分配?它似乎从语言中缺失 – 有新的和删除但没有调整大小!

我需要它,因为当我的程序读取更多数据时,我需要重新分配缓冲区来保存它.我不认为删除旧指针和新的更大的指针是正确的选择.

解决方法:

使用:: std :: vector!

Type* t = (Type*)malloc(sizeof(Type)*n) 
memset(t, 0, sizeof(Type)*m)

::std::vector<Type> t(n, 0);

然后

t = (Type*)realloc(t, sizeof(Type) * n2);

t.resize(n2);

如果你想将指针传递给函数,而不是

Foo(t)

使用

Foo(&t[0])

这是绝对正确的C代码,因为vector是一个智能C阵列.

上一篇:Yii2 自定义Gii生成代码模板


下一篇:realloc