将double打印到std::cout会导致Segmentation fault(C++)
Printing a double to std::cout results in Segmentation fault (C++)
我是C++的新手,想打印出一个双值。并不是说我真的需要打印这个值,我只是想知道这里出了什么问题。
这是我的代码(HelloWorld.cpp
):
#include <iostream>
int main() {
double i = 5.5;
std::cout << i << std::endl;
return 0;
}
在附加调试器的情况下执行此操作会导致以下错误:
Thread 1 hit Breakpoint 1, main () at src/HelloWorld.cpp:4
4 double i = 5.5;
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00000000929ba260 in ?? ()
当我在其中放置断点时,创建和分配变量是没有问题的。只有当程序应该打印该值时,才会出现错误。在没有调试器的情况下执行exe将导致根本没有输出。当我用long double
或float
替换double
时,也会发生同样的情况。打印任何其他内容都可以正常工作(字符串、char
、int
、short
等)。
我使用的是Visual Studio代码和MinGW(x86_64-8.1.0-posix-seh-rt_v6-rev0
)。VS代码正在使用以下文件进行编译/调试:
- c_cpp_properties.json
- launch.json
- tasks.json
在这里您可以看到完整的输出,以防有帮助。
知道我在这里做错了什么吗?非常感谢。
编辑:
当使用g++ -g .srcHelloWorld.cpp -std=c++11 -o HelloWorld.exe
(或仅使用g++ .srcHelloWorld.cpp -o HelloWorld.exe
)手动编译并从控制台运行时,也会发生同样的情况(没有输出)。
我使用以下设置从这里安装了MinGW:
- 版本:
8.1.0
- 架构:
x86_64
- 线程:
posix
- 例外:
seh
- 内部版本:
0
编辑2:
发现问题。有一个旧版本的gcc潜伏在我的PATH中(可能来自Visual Studio或MSSQL Server?)。我只是将当前的gcc移到PATH的顶部,现在它工作得很好。谢谢大家的帮助!
要检查是否也会发生同样的情况,您可以执行以下操作:在项目目录中执行g++ --version
。当您在安装gcc的目录中时,将其与g++.exe --version
的输出进行比较(对我来说,这是C:Program Filesmingw-w64x86_64-8.1.0-posix-seh-rt_v6-rev0mingw64bin
)。
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- 为什么我的C++代码中出现'Segmentation Fault: 11'行?
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 循环时无法进入:"Segmentation fault"
- OpenGL "Segmentation fault"错误
- 如何修复访问动态数组中结构中的字符串变量时"segmentation fault (core dumped)"错误
- 如何修复 C++ 中的'Segmentation fault'错误
- 创建一个简单的类及其变量和函数不断返回" segmentation fault (core dumped)"、C++
- 在 Mac OS 上遇到的"Segmentation fault: 11" [C++]
- 在 Linux 上实施英特尔 MKL 的 DFT 时"Segmentation fault"
- 尝试读取包含 ints 并存储在 int vector 中的文件,但我不断收到错误"Segmentation fault (core dumped)"
- 在非空 std::list 上使用 std::list.back<int>() 时"Segmentation Fault"
- 我正在尝试通过说话传递一些字符串,它会读取它们,但我得到了"segmentation fault"
- 为什么当我更改此代码时会给我"segmentation fault"错误?
- 尝试将文本文件加载到动态分配的 2D 数组中时出现'Segmentation fault'错误
- 将double打印到std::cout会导致Segmentation fault(C++)
- 将指针分配给链接列表节点会引发"Segmentation Fault"
- "Segmentation fault"使用 Cmake 在C++代码中运行 python 函数时
- 无法读取 Ubuntu "Segmentation fault (core dumped)"中的.dat或.bin文件
- 如何修复C++中的"Segmentation fault(core dump)"?