Я разрабатываю программу, в которой одной из задач является чтение точек (x, y и z) из текстового файла, а затем их сохранение в массиве. Теперь текстовый файл может содержать 10^2 или даже 10^6 баллов, в зависимости от выбранного пользователем текстового файла. Поэтому я определяю динамический массив.Ошибка: освобождение 2D-массива
Для выделения динамического 2D массива, я написал, как показано ниже, и она отлично работает:
const int array_size = 100000;
float** array = new float* [array_size];
for(int i = 0; i < array_size; ++i){
ary[i] = new float[2]; // 0,1,2 being the columns for x,y,z co-ordinates
}
После того, как точки сохраняются в массиве, я пишу следующее для освобождения нераспределенной памяти:
for (int i = 0; i < array_size; i++){
delete [] array[i];
}
delete [] array;
, а затем моя программа перестает работать и показывает, что «Project.exe перестает работать».
Если я не освобожу, программа работает нормально.
У вас есть веская причина не использовать 'std :: array' или' std :: vector'? – shuttle87
На том же самом примечании, почему бы просто не сделать массив 'struct', содержащий 3 поплавки? – TheBuzzSaw
У вас есть опечатка' ary [i] = new float [2]; 'ary => array – inkooboo