2个回答
展开全部
int n ;
scanf("%d", &n) ;
int *a = (int *)malloc(sizeof(int) * n) ;
scanf("%d", &n) ;
int *a = (int *)malloc(sizeof(int) * n) ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
确定长度,例如从键盘中输入后保存在int n中(注意需要保证n是一个正整数)。
分配空间:T* p = (T*)malloc(n*sizeof(T));,其中T是要建立的数组中元素的类型。
(可以用calloc或alloc等其它函数,但不常用,细节上有差别。)
之后就可以用类似数组的形式使用p[x](等价于*(p+x))引用动态数组下标为x的元素了。注意C语言不检查越界,所以需要保证x在整数区间[0,n)上,否则可能取到正确的值。
数组p使用完毕后,(针对malloc、calloc、strdup等函数分配的空间)用free(p);释放空间,以免内存泄露(用其它方式,可能可以不回收,或根本无法手动回收(如alloc分配的情况))。
malloc、calloc、free是标准库函数,包含在头文件stdlib.h中。
====
[原创回答团]
分配空间:T* p = (T*)malloc(n*sizeof(T));,其中T是要建立的数组中元素的类型。
(可以用calloc或alloc等其它函数,但不常用,细节上有差别。)
之后就可以用类似数组的形式使用p[x](等价于*(p+x))引用动态数组下标为x的元素了。注意C语言不检查越界,所以需要保证x在整数区间[0,n)上,否则可能取到正确的值。
数组p使用完毕后,(针对malloc、calloc、strdup等函数分配的空间)用free(p);释放空间,以免内存泄露(用其它方式,可能可以不回收,或根本无法手动回收(如alloc分配的情况))。
malloc、calloc、free是标准库函数,包含在头文件stdlib.h中。
====
[原创回答团]
参考资料: 原创
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询