我正在尝试设置智能指针所指向的结构中包含的变量的值。
对于上下文:
// Represents a node in the search tree.
struct SNode
{
int x; // x coordinate
int y; // y coordinate
}
指针(声明为unique_ptr<SNode>start
)称为start
。
我正在从文件中读取数据,这是问题所在:
inFile >> move(start)->x;
执行后,将执行此行,并且在“ istream”中发生以下错误:
”引发未处理的异常:读取访问冲突。 _Val是nullptr。”
我对智能指针的概念还很陌生,所以我不太了解我个人在这里是否做错了什么,因此可以提供任何帮助。
答案 0 :(得分:3)
智能指针拥有原始指针,因此它需要指向某个东西。该错误清楚地表明它没有指向任何对象。您在代码中的任何地方都有new
或std::make_unique<>
语句吗?
您需要这样的东西:
unique_ptr<SNode> start(new SNode);
或者:
unique_ptr<SNode>start = std::make_unique<SNode>();