我正在寫一個動態數組,它保存着每個索引中值的指針。我正在嘗試編寫takeAt方法,但我不確定它是否會導致內存泄漏。通過引用返回存儲爲指針的值 - 內存泄漏?
指針數組是「清單」 T** list = new T* [SIZE];
段:
template <class T>
const T& List<T>::takeAt(const int &index) {
if (isEmpty()) {
return T();
}
assert(index >= 0 && index < size);
T* ptr = list[index];
int numMove = size - index;
memmove(list + index, list + index + 1, numMove * POINTER_SIZE);
list[size] = NULL;
size--;
return *ptr;
}
如果這樣做會導致內存泄漏,我怎麼能解決這個問題(不返回指針代替)? 請注意別的地方我做錯了。提前致謝。
什麼是「列表」,它存儲在哪裏/如何? – orlp