1、将Windows下C++项目移到Linux时,编译ok,运行时报Segmentation fault:
仔细查找问题原因,依然是空指针、野指针的读写操作不当造成,可以往初始化方向查找问题。
2、例子
.h文件
list<string> *p_str;
.cpp
如果没有初始化,在析构时调用
if (p_str)
{
delete p_str;
p_str= NULL;
}
运行时就会报Segmentation fault
3、分析+解决办法
windows编译运行没报错是因为VS太强大默认为NULL;linux编译没报错是因为g++扩展,运行就会报错
解决办法:声明指针时初始化为NULL,或在构造函数里初始化。