ifstream *分段错误

时间:2017-02-22 06:23:46

标签: c++ pointers

我想在我的代码中使用ifstream * open文件

ifstream* i;
(*i).open("test.txt");

它引发了分段错误,我不知道为什么。 请帮我解决问题(用ifstream*打开文件)并告诉我它为什么会出错。

3 个答案:

答案 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;