У меня возникли проблемы с удалением 3D-массива. Это, по-видимому, вызывает ошибку сегментации в моем коде. Это то, что у меня есть. Ошибка сегментации вызвана удалением 3D-массива, но я не знаю, почему.Удалить 3D-массив вызывает ошибку сегментации
int main(int argc, char** argv)
{
//variables
ifstream inputFileStream[ argc - 2 ];
int ***dimensions;
//open inputFileStream and read in values...
//creating the dynamic 3D array and reading in grey values
dimensions = new int**[ argc - 2 ];
for(int i = 0; i < argc - 2; i++)
{
dimensions[ i ] = new int*[ width ];
for(int j = 0; j < width; j++)
{
dimensions[ i ][ j ] = new int[ height ];
for(int k = 0; k < height; k++)
{
inputFileStream[ i ] >> dimensions[ i ][ j ][ k ];
}
}
}
//do something with array
//delete array
for(int i = 0; i < width; i++)
{
for(int j = 0; j < height; j++)
{
delete[] dimensions[ i ][ j ];
}
delete[] dimensions[ i ];
}
delete[] dimensions;
}
Что такое ценность 'width'? – streppel
Вы удаляете массив в любом другом месте? это может быть удаление копии указателя, не обязательно должно быть фактическим указателем 'dimension'. –
Im не удалять массив в любом другом месте. Значение ширины зависит от того, какой файл вы вложили, но в этом случае это 495. –