habe ich eine Funktion, um einen dynamischen 3D-Arrayin c 3d Dynamische Array lösche ++
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];
}
}
}
Und es funktioniert gut zu initialisieren, aber wenn ich versuche, es mit einer Funktion
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;
}
Mein Programm stürzt ab, zu löschen , Warum? und wie repariere ich es?
Im Haupt:
int main()
{
char ***Failed;
initialize_array_3d(Failed, 5, 4, 2);
deinitialize_array_3d(Failed, 5, 4);
Failed = nullptr;
return 0;
}
Um dies zu beheben, verwenden Sie einfach std :: vector , sodass Sie sich keine Gedanken darüber machen müssen, es zu löschen. –