在C中增长数组

时间:2010-12-13 17:58:17

标签: c

任何人都可以向我解释生长结构阵列的概念。 我的意思是动态数组。 谢谢你的时间。

5 个答案:

答案 0 :(得分:4)

从一个大小的数组开始,然后每当你需要增加大小时,使用realloc来执行此操作;每当你调整它的大小时,通常会加倍数组的大小。

例如:

int length = 5;
my_struct *array = NULL;

/* Initialization */
array = (my_struct *)malloc(length * sizeof(my_struct));

/* Use array[0] .. array[length - 1] */

/* When you reach the limit, resize the array */
length *= 2;
array = (my_struct *)realloc(array, length * sizeof(my_struct));

答案 1 :(得分:1)

你的意思是数组的动态大小?在这种情况下,您必须根据需要分配内存。见realloc

答案 2 :(得分:1)

我有一个动态增长的字符串缓冲区实现。你可以从here获得它。它使用相同的mallocrealloc技术。

答案 3 :(得分:0)

查看标准库中的realloc函数。

答案 4 :(得分:0)

查看malloc?