内存分配与Segmentation fault
2024-10-13 16:50:01
为了方便使用,我做了如下结构体的嵌套使用:
struct operation{
int num;
char name[100];
char owner[100];
char msg[100];
};
struct collect{
int num;
char name[100];
char owner[100];
char msg[100];
struct operation operations[100];
};
struct list{
int num;
char name[100];
char owner[100];
char msg[100];
struct collect collects[100];
};
而后在main中做如下的使用:
struct list lists[100];
编译没有任何问题,在执行时报错:Segmentation fault 即段错误,一般是对内存的非法使用导致的
我将所有代码注释掉,只剩下这一个申明,结果依然报错
于是怀疑是申请的内存过大,超出了限制
后查到:局部变量是放在栈的,而linux对栈的使用有限制,可通过ulimit -s查看和更改
后做实验:调整局部变量的大小和栈使用限制,发现确实如此
结论:对于大数据,不能使用栈分配,可以考虑静态区和堆区,例如:1)定义为全局变量、2)定义为static变量、3)使用malloc动态分配
最新文章
- 【CSS进阶】原生JS getComputedStyle等方法解析
- Java循环删除集合多个元素的正确打开方式
- Java中Office(word/ppt/excel)转换成HTML实现
- 实例--post请求,完成一个抽奖程序概率的测试
- SQL2008-备份SQL数据库的语句
- java.util.regx Demo
- Node.js学习笔记1(简介)
- 随着MapReduce job实现去加重,多种输出文件夹
- bfs或者dfs Good Bye 2016 D
- HTML 4.01+5基礎知識
- bzoj2339[HNOI2011]卡农 dp+容斥
- 如何确定Kafka的分区数、key和consumer线程数
- 分享一个好用的tmux配置文件
- 一份从0到1的java项目实践清单
- Android 如何判断指定服务是否在运行中 “Service”
- vue-demo(初级)
- cocos2d JS-(JavaScript) cc.each循环遍历对象
- Python [练习题] :字典扁平化
- java文件压缩与解压
- R的transform
热门文章
- JDK1.6 中文API 下载地址
- 数据采集实践学习二(C#)
- Dynamics AX 2012 R2 业务系列-销售业务流程
- ORA-12537: TNS:connection closed
- tomcat7 日志设置为log4j
- sendEmail报错:at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm
- iOS常见面试题
- 遗传算法在JobShop中的应用研究(part 5:解码)
- reactive-turtle
- PHP 编译安装