-1
因此,我調用一個函數在主: B.remove()
Return語句打破我的函數C++
哪個終於來了這裏去 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代碼,該功能正常工作。爲什麼是這樣?有沒有簡單的方法來解決這個問題? 正如你可以看到我試圖返回一個值,然後將其從數組中刪除。我知道我應該使用矢量或其他標準方法,但我不能。我看了看我的教科書,但是找不到我想要的東西。任何幫助是極大的讚賞。
請發佈[mcve],以便我們可以看到您的代碼正在執行的所有操作都會導致問題。您提供的選擇可能不足以指出您的代碼中的實際問題 – xaxxon
@xaxxon我沒有發佈很多,因爲它的項目,我不想發佈我的實際代碼到互聯網。儘管我能夠得到完整的幫助。將來會盡量做得更完整。 –
我認爲這是一個錯誤。懷疑OP想表明兩個副本很有用 – Cuber