linux中c char数组的的限制是多少?

odin2006 odin2006 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
因为要pingpong测试, 所以需要用到一个很大的数组, 于是发现在linux上的数组的大小有个最大限制, 我得到的限制是一个数组最多能有999999个元素, 超过这个限制, 就会报错: Segmentation fault.
下面是我的源程序和测试环境, 请知情者相告.


#include<stdio.h>
int main(int *argc, char *argv[])
{

printf("the argv[1] is :%s\n ", argv[1]);
long int array_size = (long int)atoi(argv[1]);
char my_array[array_size];
printf("the size of my_array is : %ld \n", sizeof(my_array));
}

**@compu:~/cProg$ ./myarray 9000000
the argv[1] is :9000000
Segmentation fault
测试环境:
Debian GNU/Linux 3.1 2.6.8-3
gcc version 3.3.5 (Debian 1:3.3.5-13)
...全文
评论 8
收藏 已收藏
分享
返回顶部
odin2006
C语言 70,039 成员 243,237 内容