我想知道当我们尝试执行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?
我需要答案
我想你可能会得到未定义的行为(其中可能显示为段错误),如果"one.txt"包含的行比内存可以容纳的长。getline()
读取的字符数受到string
对象的max_size()
的限制,但这可能相当大。
的内容是否有可能得到分段故障这个文件吗?
这几乎是不可能的,假设你的代码没有未定义行为 -否则一切都是可能的,包括分段错误。标准c++库被许多人使用。它经过了很好的测试,可以对输入值进行错误检查。