0
我一直在試圖調整這個數組的大小,它編譯得很好,但是當我運行它時,我得到了這個非常長的錯誤信息。C++調整動態數組大小
下面是該函數的代碼:
void arrayClass_Namespace::arrayClass::resize(int newSize)
{
std::cout << "\nPlease input a new size for the array: ";
std::cin >> newSize;
assert(newSize < MAX_SIZE);
int *resize_arr = new int[newSize];
for(int index = 0; index < size; index++)
{
resize_arr[index] = arr[index];
}
size++;
arr = resize_arr;
delete[] resize_arr;
}
下面是更新代碼,現在工作完全正常:
void arrayTools_GabriellaRamirez::arrayTools::resize(int newSize)
{
std::cout << "\nPlease input a new size for the array: ";
std::cin >> newSize;
assert(newSize < MAX_SIZE);
int *resize_arr = new int[newSize];
for(int index = 0; index < size; index++)
{
resize_arr[index] = arr[index];
}
for(int index = size; size < newSize; index++)
{
size++;
}
for(int index = size; size > newSize; index++)
{
size--;
}
delete [] arr;
arr = resize_arr;
}
如果您使用'std :: vector arr'而不是'int * arr',這些問題就會消失。 –
將來請發佈錯誤信息。 「非常長的錯誤信息」並不能幫助未來的訪問者。 – 2014-02-10 01:49:36
@Robᵩ'std :: cout <<「\ n請爲該數組輸入一個新的大小:」;'我不認爲他在這裏需要生產代碼,只是練習。 – user3286380