gpt4 book ai didi

c++ - 字符串、调试和段错误齐头并进

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:06:22 26 4
gpt4 key购买 nike

你好,我正在做这个简单的程序

 #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 我得到了 S.F.

错误截图仅供引用 enter image description here

最佳答案

当我搜索有关此问题的信息时,我在 Code::Blocks 论坛中找到了条目,但它已经很旧了。

但是,MiniGW 的 GDB 中可能存在错误。如果您想确定,您应该查找此问题及其修复。

我知道这不是完整的答案,但你应该去看看这篇文章并阅读它们,有一些解决方案:

Code::Blocks 论坛的帖子:

1. Watching std::string in debugger causes segfault?!?

2. Still having seg fault while watching a string....

关于c++ - 字符串、调试和段错误齐头并进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49666868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com