请问要定义一个未知长度的数组,数组的长度要自己输入确定,,是不是先输入数组长度n,在定义为inta[n],可为什么给我报错了,说不对,求代码谢谢
#include<stdlib.h>
int n, *a;
scanf("%d",&n);
a=(int *))malloc(n*sizeof(int));//动态申请n个整型元素的数组
free(a);//用完释放
建议动态分配数组的内存:
char array;
array = (char)malloc(n);
c语言中定义数组长度是不能够直接使用变量的,除非这个长度变量在之前初始化了,如:
int n=10;
int a[n];
倘若需要使用可变长度的数组,建议使用楼上的malloc
编译器不能分配未知大小的内存,你填n是在运行时才确定其值但编译时编译器就会检查其值,不能确定所以就报错。楼上的有问题,应该是char* 。
char * szAay = null;
new 或者 malloc 都可以
要想自定义数组的大小,只能使用动态内存分配,malloc