【发布时间】:2019-12-19 06:30:04
【问题描述】:
我有一个Word(对象)的指针数组,我必须将另一个Word 类型的对象分配给这个对象数组。
使用这两行代码,我将新对象 w 放入我的对象数组 (word)。
Word w = Word(new_word, len);
this->word[index - 1] = w;
然后我打印我的对象数组,一切都正确
for (int k = 0; k < this->len; k++) {
cout << this->word[k].getChars() << endl;
} // End of function 1
在“函数结束”之后,我们返回调用另一个函数的主类。
此函数再次打印对象数组,但现在该函数不打印我在前一个函数中插入的w 对象。
第二个功能
for (int k = 0; k < this->len; k++) {
cout << this->word[k].getChars() << endl;
} // End of function 2
谁能向我解释为什么会发生这种情况以及如何安排。
【问题讨论】:
-
显示minimal reproducible example。我的猜测是
Word构造函数存储一个指向局部变量的指针,并在函数返回后以一个悬空指针结束。但不要猜测,您应该显示Word的实际定义。 -
请发帖minimal, reproducible example。这只是没有足够的代码来查看问题所在......
-
可以是Rule of Three violation。我和其他人一起申请minimal reproducible example。
标签: c++ arrays object pointers