什么是分段错误?以及我该如何解决它
What is a segmentation fault? And how can I fix it?
输出字符串(例如 20.58)后,我尝试使用 boost::lexical_cast
将其转换为双精度数。但是下一行代码没有运行,我的程序结束了,我得到了一个分段错误。
{
string temp = matches[1];
int size = temp.find_first_of("<"); //number of chars until "<"
temp.resize(size);
cout << "Match: " << temp << "n";
Price[1] = boost::lexical_cast<double>(temp);
cout << "Price: $" << Price[1] << 'n';
//break;
}
输出:
Match: 20.96
RUN FINISHED; Segmentation fault; real time: 860ms; user: 0ms; system: 0ms
我更喜欢使用 std:stod;但我在 Mac OSX 10.6.8 上使用 netbeans,并且发现不支持 C++11。
分段错误是未定义行为的可能后果。
在 *nix 平台上,当程序执行未经授权的内存操作(例如读取或写入它不拥有的内存)时,系统可能会向此进程发送SIGSEGV
信号,默认情况下会终止它。
在大多数情况下,分段错误是内存管理不良的结果,例如取消引用空值或悬空指针、在数组外部读取/写入等。
在您的情况下,故障可能在于Price[1]
的存在,或者如果存在,则typeof(Price[0])::operator=(double)
的问题。但是,我们不会调试你的代码,除非它是最小、完整和可验证的示例。
相关文章:
- 运行同一解决方案的另一个项目的项目
- Project Euler问题4的错误解决方案
- Ardunio UNO解决了多个重叠的定时器循环
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 两个文件使用彼此的功能-如何解决
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 在java中解决这段代码时面临循环中的问题
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 难以理解某些人解决IOI问题的源代码
- visual c++,如何获取解决方案目录中的代码
- 如何解决错误:SCIP C++中的 SCIP 阶段无效 <10>
- 节俭并发:未解决的外部问题
- IpOpt拒绝解决不受约束的问题
- 如何解决这个超硬恒星的创造问题
- 循环无限运行C++解决骑士之旅问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- C++Matching Brackets 2解决方案不起作用
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- 为什么这段代码不起作用,我该如何解决?