| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1063 人关注过本帖
标题:为什么我的数组元素超过65535后,编译就会报错
只看楼主 加入收藏
高级点灯大师
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-8-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
为什么我的数组元素超过65535后,编译就会报错
为什么我的数组元素超过65535个后,编译就会报错collect2.exe:ld returned 1 exit status
搜索更多相关主题的帖子: 65535 编译 数组 报错 元素 
2022-08-14 18:04
高级点灯大师
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-8-14
收藏
得分:0 
调用的时候会报错,不用也能编译过去
2022-08-14 18:09
md00000000
Rank: 4
等 级:业余侠客
威 望:7
帖 子:105
专家分:289
注 册:2017-6-22
收藏
得分:5 
我有代码在VC6.0上运行大数组的时候,默认的就容易爆(应该是stack overflow)
代码不想每一次都增大栈分配的内存,于是用new和malloc,然后就不会爆了
2022-08-14 23:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
VC++默认栈大小只有1M bytes,若想修改栈大小,对于VC++,
你可以在代码中用 #pragma comment(linker, "/STACK:字节大小")
也可以在.def文件用 STACKSIZE statement
也可以在link命令中用 /STACK:reserve[,commit]
甚至只有exe文件,你也可以用VC自带的工具editbin.exe进行修改。

但问题是你是不是一定要在栈中分配大数组?
可以分配在堆中,动态长度的数组,std::vector很合适;定长的,std::unique_ptr<foo[]> p { new foo[3] }; 更好一些。 ------ 推荐这种方法
假如你就想在栈中分配数组,且懒得改任何东西,你还可以用static局部变量;如果你觉得static局部变量在多线程同时调用时会冲突,你还可以用static thread_local。 ------ 不推荐这种方法
2022-08-15 09:00
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
收藏
得分:5 
根本原因是因为每个程序匀给每个数组的空间是有限的

[此贴子已经被作者于2022-8-17 15:49编辑过]

2022-08-16 12:48
chenyucheng
Rank: 3Rank: 3
来 自:浙江省台州市临海市
等 级:论坛游侠
威 望:3
帖 子:141
专家分:181
注 册:2022-7-1
收藏
得分:5 
超过了16位无符号整数的最大值65535

爱玩编程的小学生,有Python,但只会一点点C++。

版主->斑竹->竹子,所以版主是竹子。(doge)
//不要让我当版主
2022-08-17 14:30
快速回复:为什么我的数组元素超过65535后,编译就会报错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054843 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved