嗨,我正在做这个简单的程序
#include <iostream>
#include <string>
using namespace std;
int main (){
string hi("Hi how are you");
for(int i = 0;i<4;i++)
cout<<hi<<endl;
return 0;
}
当我编译并运行它时,没有问题,但是当我尝试调试它时,每次IDE程序(Code :: Block 16.01)进入或退出string hi("hi how are you")
时它都会给我一个分段错误。
我知道SF是程序试图访问它不应该访问的内存空间,我知道字符串类是一个动态分配内存的C-Sytle字符串,并在程序完成时自动删除它们因此,内存管理应该没有问题,所以这段代码不应该成为问题。
但是在这段代码中,我不明白为什么在调试它时会得到SF。当我第一次尝试调试并退出hi
时,没有错误,但是当我尝试观看hi
时,它给了我一个SF,当我再次尝试调试时,我走进string hi
我得到了SF
答案 0 :(得分:1)
当我搜索有关此问题的信息时,我在Code :: Blocks论坛中找到了条目,但它已经很老了。
但是,MiniGW的GDB中可能存在错误。如果你想确定,你应该寻找这个问题及其解决方法。
我知道这不是完整的答案,但你应该去看这些帖子并阅读它们,有一些解决方案:
Code :: Blocks论坛的帖子: