C语言数组个数的定义a[] 5C

#include
#include
static long int a[1000000000];
int main()
{

}
这个代码,为什么a[]中0为9个就会报错,但是多余或者少于9个都不会报错?


c

5个回答

整数最大是2^32是4294967296,如果有符号,那么还得除一半。9位数就超了。

你定义的数组0多于9个能够编译通过吗?按理说只有少于9个的时候,才能够正确的编译通过的;我亲自编译后仅当0少于9个的时候才能编译通过的;
至于为什么申请这么大的内存空间会编译失败呢是因为堆区和栈区的空间是有限的;编译器都是有着严格的规定;你一次申请这么大的连续的内存空间,
肯定是不能够得到保证的,同时你申请的内存空间不能够超过编译器的限定;

可能定义错误,没有ststic long int
这种的吧,改成signed long int 试试

你的数据溢出来 建议换成long int. 或者long long 型

建议换成long long 型 最好在主函数外定义

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐