c语言 一维数组如何增加长度

2025-02-27 08:27:43
推荐回答(5个)
回答1:

C语言一维数组分静态一维数组和动态一维数组两种。

一、静态一维数组,在定义的时候就已经确定其长度。如

int a[10];

就是定义了一个长度为10个元素的整型数组。

静态数组不支持长度的增加。如果要增加长度,只能新定义一个更长的数组,并把原始数组的数据复制到新数组中。


二、动态一维数组,本质上是一个一维指针,并在其上分配一段内存,在这段内存上,可以当做数组来使用。

这种情况下,可以通过realloc函数,来实现增加长度。

int *p; //定义指针
p = malloc(10*sizeof(int));//分配10个元素。
p = realloc(p,20*sizeof(int));//重新分配,长度增加到20. 使用该函数,可以保持原本空间内的数据不变,只是可用空间增加。

回答2:

无法增加长度,你可以定义一个新数组,然后把旧的数组数据复制到新数组

回答3:

c语言一维数组不能直接增加长度,但可以采用动态空间分配间接地实现此功能。

回答4:

不能增加长度,如果需要能增加长度的数组,建议使用vector

回答5:

用int *cam_gm = new int [i];来定义动态数组