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

如题所述

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

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

int a[10];

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

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


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

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

int *p; //定义指针
p = malloc(10*sizeof(int));//分配10个元素。
p = realloc(p,20*sizeof(int));//重新分配,长度增加到20. ä½¿ç”¨è¯¥å‡½æ•°ï¼Œå¯ä»¥ä¿æŒåŽŸæœ¬ç©ºé—´å†…的数据不变,只是可用空间增加。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-01
无法增加长度,你可以定义一个新数组,然后把旧的数组数据复制到新数组
第2个回答  2010-10-28
c语言一维数组不能直接增加长度,但可以采用动态空间分配间接地实现此功能。
第3个回答  2010-10-28
不能增加长度,如果需要能增加长度的数组,建议使用vector
第4个回答  2010-10-28
用int *cam_gm = new int [i];来定义动态数组本回答被提问者采纳