⑴ c语言中定义一维数组
您这样进行定义是错误的。
因为在栈上进行数据定义时,必须编译的时候就能够确定该数据的确切大小。
int b[]; //必须填值
int a[strlen(b)]={0}; //中括号内容的值必须是常数。
如果您需要动态大小的数组,那么应该使用malloc进行动态内存申请,并在使用后用free进行释放。
⑵ c语言中可不可以用变量定义数组的个数;
c语言中不可以用变量定义数组的个数。
可以使用mallo函数
mallo函数返回的实际是一个无类型指针,必须在其前面加上指针类型强制转换才可以使用;
指针自身=(指针类型*)malloc(sizeof(指针类型)*数据数量);
int*p=NULL;
intn=10;
p=(int*)malloc(sizeof(int)*n);
(2)c语言定义数组扩展阅读
mallo函数使用注意事项
调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。
调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲链会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可以满足用户要求的片段了。
⑶ c语言中如何给数组定义并赋初值
字符串数组定义赋值:
char c[6]={'c', ' h ', 'i', 'n', 'a' , '