【问题标题】:C++ Pointer Assignment (Point to a Vector)C++ 指针赋值(指向向量)
【发布时间】:2011-07-06 05:47:19
【问题描述】:

这是我在任何论坛上的第一篇文章,所以请多多包涵。

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

我是这个论坛的新手,还在学习如何在这里发帖,所以如果我在帖子中犯了错误,或者我的信息不清楚或不足,请多多包涵。如果我需要发帖或说更多来表明我的立场,请告诉我。

谢谢。

【问题讨论】:

  • 你可能想要pointer = &vector_of_reviews*pointer = vector_of_reviewsvector_of_reviews 复制到指针当前指向的任何位置,这几乎是随机的,可能会导致 SIGSEGV 或等效操作系统。
  • Stackoverflow 并不是一个真正的论坛,而是一个问答网站。
  • @Tony - 感谢您的解决方案。亚历克斯(见下面的答案)有同样的建议。它也奏效了。
  • @Sam - 我会记住这一点

标签: c++ pointers object vector variable-assignment


【解决方案1】:

要分配一个指向“指向”对象实例的指针,请使用pointer = &vector_of_reviews

& 运算符获取某物的地址,而这正是您要分配给指针的地址。

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

【讨论】:

  • 感谢您的解决方案。它似乎恰到好处。这是在漫长的一天之后编写代码时犯下的愚蠢疏忽之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 1970-01-01
  • 2020-04-13
  • 2019-09-10
  • 1970-01-01
  • 2011-08-04
相关资源
最近更新 更多