C语言中定义一维数组

#include<stdio.h>
#include<string.h>
int main()
{
int b[];
gets(b);

int a[strlen(b)]={0}; //错误的?

return 0;
}

您这样进行定义是错误的。
因为在栈上进行数据定义时,必须编译的时候就能够确定该数据的确切大小。

int b[]; //必须填值
int a[strlen(b)]={0}; //中括号内容的值必须是常数。

如果您需要动态大小的数组,那么应该使用malloc进行动态内存申请,并在使用后用free进行释放。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-16
int b[]; 肯定错误呀!定义数组是没有初始化数组的长度。必须是个错误。追问

换成b[20]也是错的 为什么

追答

你换成char b[20]试下。。。。

第2个回答  2012-10-16
int b[];此方式属于静态数组,编译时就需要知道数组大小!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网