C++指针赋值(指向向量)

6
这是我在任何论坛上的第一篇帖子,所以请耐心等待。
我正在编写一个利用自定义类“Book”的C++程序,其中包括标题、作者和存储在字符串中的其他变量等成员变量。在这些成员变量中,有一个用于存储Review类型对象的向量(另一个自定义类)。现在,在我的驱动文件(其中包含main())需要访问该向量(每个Book对象中的Reviews向量)并对其进行更改。我意识到我需要利用vector指针类型(例如vector pointerName)。因此,我向Books类添加了另一个成员变量,即指针。我面临的问题是将该指针指向该向量。我尝试在对象的默认构造函数中对其进行解引用并将其指向向量,但这会导致我的程序在运行时崩溃而不抛出异常。我放在构造函数中的代码行是*pointer = vector_of_reviews;
我是这个论坛的新手,还在学习如何在这里发布,请谅解如果我在帖子中犯了错误或者信息不够清晰或者不足。如果我需要发布或说更多内容来明确我的立场,请告诉我。
谢谢。

2
你可能想要使用 pointer = &vector_of_reviews*pointer = vector_of_reviews 将会把 vector_of_reviews 复制到指针当前所指的随机地址,这很可能会导致 SIGSEGV 或类似的操作系统错误。 - Tony Delroy
Stackoverflow并不是一个传统意义上的论坛,而是一个问答网站。 - Sam Miller
@Tony - 感谢您的解决方案。Alex(请参见下面的答案)也给出了同样的建议。它也起作用了。 - blazethesinner
@Sam - 我会记住的。 - blazethesinner
1个回答

6

要将指针“指向”对象实例,请使用pointer = &vector_of_reviews

&运算符获取某物的地址,您希望将其分配给指针。

*pointer = vector_of_reviews取消引用指针(获取实际对象“指向”)。 如果指针尚未初始化,则很可能会崩溃。 如果指针有效,则执行值分配,即调用向量类的赋值运算符。


谢谢你的解决方案。它似乎很容易就能契合在一起。这是在长时间编码后所犯的那些愚蠢的疏忽之一。 - blazethesinner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接