C ++ Исключение выделения памяти Qt с QList

Как это может случиться, что это исключение

    for(int h = 0 ; h < listOne.count() ; ++h) {
delete[] listOne[h];
}

с QList listOne? Я удаляю массивы float *, повторяясь, пока не достигну номера элемента в QList …

РЕДАКТИРОВАТЬ & РЕШЕНИЕ

На самом деле, это происходит сбой, когда я добавляю только один float в один элемент QList. Тогда это уже не float* а ты не можешь delete [] Это.

0

Решение

How can this ever happen that this throws an exception

Одна возможность: вы добавили один массив 2 раза в список.
Одно исправление:

for(int h = 0 ; h < listOne.count() ; ++h) {
delete[] listOne[h];
listOne[h]=nullptr;
}

Возможно, другие ошибки (вы добавили не-массив указателей в список).

РЕДАКТИРОВАТЬ:

На самом деле, это не удается, когда я добавляю только один float в один элемент
QList. Тогда это больше не float *, и вы не можете удалить [] его.

Я подозревал…
Очень простое исправление:

float *pi=new float[1];
pi[0]=3.14f;

Теперь добавьте pi к списку

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]