
C语言数组动态分配内存
比如一个我需要一个int型的数组来存放数据。但开始我无法确实定数组的长度。我想当我接收到一个整数时。我就动态的为这个数申请一个内存块,以增加数组的长度。这样可不可做到。如...
比如一个我需要一个int型的数组来存放数据。但开始我无法确实定数组的长度。我想当我接收到一个整数时。我就动态的为这个数申请一个内存块,以增加数组的长度。这样可不可做到。如果可以,要怎么做。
展开
3个回答
展开全部
可以,先用一个宏定义出原始长度,和将要增加的长度。用上realloc函数。
追问
如果原来我int数组里以经有一些数组了。用realloc函数。不会清掉我原来的数据吧?
追答
用线性表吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
realloc原型是 extern void *realloc(void *mem_address, unsigned int newsize);
用于内存不够时重新分配内存,返回目标内存基址,
第一个参数是原内存地址,第二个参数是申请的内存空间
该函数执行时会把原地址的值先搬过来,所以不会改变原来的数据。
用于内存不够时重新分配内存,返回目标内存基址,
第一个参数是原内存地址,第二个参数是申请的内存空间
该函数执行时会把原地址的值先搬过来,所以不会改变原来的数据。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言的数组,要求维数是确定的,否则,编译出错。
你可以声明一个数组,其长度是尽可能大的维数,如int a[1000];
你可以声明一个数组,其长度是尽可能大的维数,如int a[1000];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询