我想在我的代码中使用ifstream * open文件
ifstream* i;
(*i).open("test.txt");
它引发了分段错误,我不知道为什么。
请帮我解决问题(用ifstream*
打开文件)并告诉我它为什么会出错。
答案 0 :(得分:2)
在您的代码中,i
是一个指针,它没有被初始化,因此它指向的内存位置是不确定的。
接下来,您试图在(*i).....
中取消引用它,并调用undefined behavior。
在取消引用指针之前,需要分配内存(即使指针指向某个有效的内存位置)。
答案 1 :(得分:1)
routes.php
ifstream* i;
是指针,但它不指向任何i
对象。因此分割错误。
答案 2 :(得分:0)
使用:
ifstream i;
i.open("test.txt");
否则它会失败,因为你的指针指向无处,但没有指向有效的对象。
或者如果你还想使用指针:
ifstream* i = new ifstream;
i->open("test.txt");
...
delete i;