字符串赋值中的coredump

时间:2011-08-18 18:11:27

标签: c++ coredump

我想知道当我们尝试使用getline()函数从文件中读取一行时可能出现分段错误的情况

例如:

ifstream h("one.txt");
string s;
getline(h,s); //what assignment to 'h' can lead to segmentaion fault here (or) 
              //is it possible to get the segmentation fault based on the content of the file?

我需要这个答案

2 个答案:

答案 0 :(得分:0)

如果“one.txt”包含的行超过了可以放入内存的行,我想你可能会得到未定义的行为(可能显示为seg错误)。由getline()读取的字符数受max_size()对象的string约束,但这可能非常大。

答案 1 :(得分:-1)

  

是否可以根据内容获取分段错误   文件?

假设您的代码没有未定义的行为,这几乎是不可能的 - 否则一切皆有可能,包括分段错误。标准C ++库被许多人使用。它经过了充分测试,可以对输入值进行错误检查。