C中的动态数组实现

时间:2014-01-31 20:20:45

标签: c arrays pointers dynamic realloc

  • C中的realloc函数是否分配连续的内存空间?

  • 我正在尝试实现动态整数数组。我应该按数组元素的大小增加指针还是增加1?

  • 还有其他更好的方法可以在C中实现动态数组吗?

2 个答案:

答案 0 :(得分:2)

  1. 是的,就像malloc()一样。

  2. 如果你有int* ptr是指向动态分配的int数组元素的指针,那么简单的ptr++将指向下一个元素。

  3. 在C中使用malloc()realloc()似乎是动态数组的一个不错的选择。

答案 1 :(得分:1)

  

C中的realloc函数是否分配连续的内存空间?

是。

  

我正在尝试实现动态整数数组。我应该按数组元素的大小增加指针或增加1吗?

您应该将指针增加1

  

还有其他更好的方法在C中实现动态数组吗?

使用malloc家庭功能是唯一的方法。但是在C99和后者中你可以使用variable length arrays(但它在堆栈上分配内存时有一些限制)。