2011-03-01 195 views
2

这是我在任何论坛的第一篇文章,所以请耐心等待。C++指针分配(指向矢量)

我正在写一个C++程序,它使用一个自定义类'Book'和成员变量,如标题,作者和其他存储在字符串中的变量。这些成员变量中有一个用于存储类型为Review的对象(这是另一个自定义类)的向量。现在在我的驱动程序文件(main()所在的位置)需要访问该向量(每个Book对象中的评论向量)并对其进行更改。我意识到我需要利用类型向量的指针 (例如, 向量指针名称 )。所以我添加了另一个成员变量到Books类,这是一个指针。我面临的问题是将该指针指向矢量。我在哪里可以做这个任务?我尝试去引用它并将其指向该对象的默认构造函数中的矢量,但这会导致我的程序在运行时崩溃而不会引发异常。我在构造函数中输入的行是 * pointer = vector_of_reviews;

我是这个论坛的新手,仍然在学习如何在这里发帖,所以如果我在自己的帖子中犯了一个错误,或者我的信息不清楚或者信息不足,请耐心等待。请让我知道,如果我需要张贴或说更多的东西来表达我的立场。

谢谢。

+1

你可能想'pointer =&vector_of_reviews'。 '* pointer = vector_of_reviews'将'vector_of_reviews'复制到指针当前指向的位置,这非常随机,可能会导致SIGSEGV或OS等效。 – 2011-03-01 04:09:56

+0

Stackoverflow并非真的是一个论坛,而是一个问答网站。 – 2011-03-01 04:16:59

+0

@Tony - 谢谢你的解决方案。亚历克斯(见下面的答案)有相同的建议。它也起作用。 – blazethesinner 2011-03-01 05:18:53

回答

6

的指针分配给“指向”的对象的实例使用pointer = &vector_of_reviews

&运算符获取某个东西的地址,这是你想要分配给指针的地址。

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

+0

感谢您的解决方案。它似乎点击到位。这是人们在漫长的一天之后进行编码时所犯的一种愚蠢的疏忽。 – blazethesinner 2011-03-01 05:18:03