在.cpp文件中,memset struct类型 所引发的segmentation fault
来源:互联网 发布:游戏优化器 编辑:程序博客网 时间:2024/04/30 16:57
在.cpp文件中,memset struct类型 所引发的segmentation fault 。 今天调试这个问题,调试了几个小时。 oh, my god.
sutiation:
在.h文件中声明一个struct a结构体:
struct a{ std::string str; int value;};
然后在.cpp文件中的一个函数中,先是定义该结构体的类型的实例(struct a aa):
struct a aa;memset(&aa, 0x00, sizeof(struct a));aa.str = "hello";结果就报:segmentation fault.了。 很明显没有访问了没有分配的内存地址。即:a.str = NULL.
printf("%s \n", aa.str.c_str());输出的结果是:nil。
得出结论:
虽然struct 定义的时候, 会有一个构造函数将其初始化, 但当memset时候, 将结构体struct a中的所有元素都置为0了。 而std::string str = NULL。 所以,我们在给aa.str 赋值的时候, 就会出段错误。
解决方案: 就是将该死的memset那行去掉就行了。
注:在C++中, struct 和memset不是一对好基友了。用的时候, 要小心一些。
- 在.cpp文件中,memset struct类型 所引发的segmentation fault
- arpa/inet.h所引起的Segmentation fault及网络编程常见的头文件
- 一次类型强转后引发的segment fault
- segmentation fault的调试
- 在非GUI程序中调用wxThread出现segmentation fault
- mysql导入sql文件的时候报错Segmentation fault
- Pydoop在AWS的Ubuntu上Segmentation fault 错误处理
- Linux下数组非法访问导致内存破坏 —— 引发segmentation fault的原因
- ARM-LINUX调试中segmentation fault 的解决参考
- linux编程中遇到的Segmentation fault错误
- C语言中经常遇到的 segmentation fault 错误
- 关于Segmentation fault的问题
- 关于 Segmentation fault的总结
- 释放文件到临时文件夹中所引发的安全问题
- php脚本也能引发(Segmentation fault)段错误?
- Segmentation Fault
- Segmentation Fault
- Segmentation fault
- 图片压缩
- android 反编译工具
- iOS 消息推送 (待续)
- 内存管理FAQ(freshground )
- 【文本分类】 特征抽取之信息增益
- 在.cpp文件中,memset struct类型 所引发的segmentation fault
- 有关Dynamic Web TWAIN的一些问题
- c++基础---C++之模板
- Python扩展方法及工具比较
- 交换数据流(ADS)与IIS的前世与今生
- 纹理(讲得比较详细的文章)
- ObjC学习9-Foundation框架之数字、字符串和集合
- Loadrunner windows sockets性能测试脚本开发视频完成
- 二分匹配