【发布时间】:2018-03-05 23:19:24
【问题描述】:
所以我在 main 中调用了一个函数:
B.remove()
这里是什么
m_arrays[m_oldest]->remove()
那么终于到了:
int MyClass::remove() {
cout << "this is the remove function"<< endl; //debugging line
int lastVal = 0;
for (int i = start; i < capacity; i++) { //actual remove function
if (m_array[i] != NULL) {
int lastVal = m_array[i];
m_array[i] = NULL; // sets to null
m_size--; //increment
break;
}
}
m_start++; //increment
return lastVal;
}
如果我删除包含 lastVal 的代码,该函数将正常工作。为什么是这样?有没有简单的方法来解决这个问题? 如您所见,我试图在将其从数组中删除之前返回一个值。我知道我应该使用矢量或其他一些标准方法,但我不能。我查看了我的教科书,但找不到我要找的东西。非常感谢任何帮助。
【问题讨论】:
-
请发布minimal reproducible example,以便我们查看您的代码正在执行的所有导致问题的操作。您提供的选择可能不足以向您指出代码中的实际问题
-
@xaxxon 我没有发布很多,因为它是一个项目,我不想将我的实际代码发布到互联网上。不过,我能够获得完整的帮助。以后会尽量完善。
-
我认为这是一个错误。怀疑 OP 想表明两个副本是有用的
-
@xaxxon 我无法删除它,因为有答案。他们不允许你这样做。
-
是的,很抱歉这是一个错误。
标签: c++ arrays return return-value