C中的realloc函数是否分配连续的内存空间?
我正在尝试实现动态整数数组。我应该按数组元素的大小增加指针还是增加1?
还有其他更好的方法可以在C中实现动态数组吗?
答案 0 :(得分:2)
是的,就像malloc()
一样。
如果你有int* ptr
是指向动态分配的int
数组元素的指针,那么简单的ptr++
将指向下一个元素。
在C中使用malloc()
和realloc()
似乎是动态数组的一个不错的选择。
答案 1 :(得分:1)
C中的realloc函数是否分配连续的内存空间?
是。
我正在尝试实现动态整数数组。我应该按数组元素的大小增加指针或增加1吗?
您应该将指针增加1
。
还有其他更好的方法在C中实现动态数组吗?
使用malloc
家庭功能是唯一的方法。但是在C99和后者中你可以使用variable length arrays(但它在堆栈上分配内存时有一些限制)。