Linux C/C++中”Segmentation fault“总结
来源:互联网 发布:焓湿图软件 编辑:程序博客网 时间:2024/05/17 08:22
这几天需要对一个百万量级语料库进行统计,为了充分利用实验室的服务器优势,不得不换用Linux上的C++编程。以前经常用C#进行编程,C++也学过,但C++编程只是学习性质,之多写个简单的数据结构。这次真正做个统计遇到了很多问题。
由于数据量比较大,再读取过程中遇到了”Segmentation fault“错误。在此总结一下,希望对大家有所帮助
1:Linxu程序的结构
在Linux系统下,程序是个普通的可执行文件,用size命令可以列出文件的结构。比如:size read ,现实以下数据
text data bss dec hex filename
3905 364 152 4421 1145 read
其中,text是代码区(text segment),用来存放CPU执行的指令,代码区是共享的。
dada是数据区(data segment),用来存贮在程序中明确被初始化的全局变量,已经出初始化的静态变量。
bss区(Block Started by Symbol),存入的是全局未初始化变量和未初始化的静态变量。
2:错误原因
2.1 数组初始化空间过大
在我的程序中,由于数据量在2百万多汉字,所以一开始初始化内存为1024*1024*20。结果一直出现”Segmentation fault“错误。在我的实验中把数据大小改为1024*1024*9时(Ubuntu10.04,gcc version 4.4.3 ),不会出现错误。如果1024*1024*10就报错。内存初始化大小可以自己定义,这是利用系统默认的分配方式。
- Linux C/C++中”Segmentation fault“总结
- Linux C程序:Segmentation fault
- segmentation fault(linux c)补遗
- linux c/c++ 段错误(Segmentation fault 查找总结1)
- linux c/c++ 段错误(Segmentation fault 查找示例2)
- C语言中经常遇到的 segmentation fault 错误
- json-c发segmentation fault问题
- Segmentation fault in c program runtime
- C语言变量值丢失、segmentation fault
- linux下segmentation fault(段错误)总结
- linux中出现segmentation fault错误
- linux中出现segmentation fault错误
- Segmentation fault in Linux
- linux segmentation fault记录
- Linux遭遇Segmentation fault
- Linux下报错:Segmentation fault.
- Segmentation fault in Linux
- C语言中"=="的进击——“segmentation fault”!
- java内部类的使用
- IE8的一个麻烦的问题
- Windows 语音编程初步
- BeyondCompare命令行操作输出文件比对报告
- 360是蓄谋已久的
- Linux C/C++中”Segmentation fault“总结
- SAPI实现朗读文本及转换成wav功能
- afdfd
- VC++数据库连接字符串
- 在PowerPoint中FLASH动画的使用
- linux下fork和pthread混用的问题
- Android 自定义action
- a
- 九妹儿第一次在同事面前亮相