我做了一個函數來初始化動態三維陣列刪除在C++中三維動態數組
void initialize_array_3d(char ***Array, int size1, int size2, int size3)
{
Array = new char**[size1];
for (int t=0; t<size1+1; t++)
{
Array[t] = new char *[size2];
for (int r=0; r<size2+1; r++)
{
Array[t][r] = new char [size3];
}
}
}
,它工作正常,但是當我試圖用一個函數來刪除它
void deinitialize_array_3d(char ***Array, int size1, int size2)
{
for (int t=0; t<size1+1; t++)
{
for (int r=0; r<size2+1; r++)
{
delete[] Array[t][r];
}
delete[] Array[t];
}
delete[] Array;
}
我的程序崩潰,爲什麼?我該如何解決它?
在主:
int main()
{
char ***Failed;
initialize_array_3d(Failed, 5, 4, 2);
deinitialize_array_3d(Failed, 5, 4);
Failed = nullptr;
return 0;
}
爲了解決這個問題,只是使用std ::矢量,所以你不必擔心刪除它。 –