【发布时间】:2014-02-24 16:39:30
【问题描述】:
C 中的 realloc 函数是否分配连续的内存空间?
我正在尝试实现动态整数数组。我应该按数组元素的大小还是按 1 递增指针?
有没有其他更好的方式在 C 中实现动态数组?
【问题讨论】:
-
你的意思是“与原始记忆连续”吗?
标签: c arrays pointers dynamic realloc
C 中的 realloc 函数是否分配连续的内存空间?
我正在尝试实现动态整数数组。我应该按数组元素的大小还是按 1 递增指针?
有没有其他更好的方式在 C 中实现动态数组?
【问题讨论】:
标签: c arrays pointers dynamic realloc
是的,就像malloc() 一样。
如果您有一个int* ptr,它是一个指向动态分配的int 数组元素的指针,那么一个简单的ptr++ 将指向下一个元素。
在我看来,在 C 语言中使用 malloc() 和 realloc() 是动态数组的不错选择。
【讨论】:
C 中的 realloc 函数是否分配连续的内存空间?
是的。
我正在尝试实现动态整数数组。我应该按数组元素的大小还是按 1 递增指针?
您应该将指针增加1。
还有其他更好的方法可以在 C 中实现动态数组吗?
使用malloc 系列函数是唯一的方法。但在 C99 及更高版本中,您可以使用variable length arrays(但它有一些限制,因为它在堆栈上分配内存)。
【讨论】: