Russian Qt Forum

Qt => Общие вопросы => Тема начата: demaker от Сентябрь 19, 2013, 14:28



Название: [Решено]Ошибка Invalid parameter passed to C runtime function.
Отправлено: demaker от Сентябрь 19, 2013, 14:28
Не могу отловить ошибку через дебаг
Код:
ASSERT: "d" in file d:\QtSDK\Desktop\Qt\4.7.3\mingw\include/QtCore/qscopedpointer.h, line 112
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
C:\Users\MyMTLYNX-build-desktop\debug\MyMTLYNX.exe завершился с кодом 3

Проблема вот в этом коде:
Код
C++ (Qt)
void TreeModelBrowser::updateModelRemoveRow(QModelIndex index)
{
if(index.isValid())
   {
       int row = index.row();
       beginRemoveRows(index,row,row);
       CommonElement *ce = reinterpret_cast<CommonElement*>(index.internalPointer());
       qDebug()<<"ce = "<<ce;
       delete ce;
       endRemoveRows();
   }
}
 
но, что не правильно не могу понять ???


Название: Re: Ошибка Invalid parameter passed to C runtime function.
Отправлено: mutineer от Сентябрь 19, 2013, 14:33
beginRemoveRows(index,row,row);
Ты тут говоришь что удаляешь строку row у парента index, а по факту никаких строк не удаляешь, а удаляешь объект по указателю внутри index


Название: Re: Ошибка Invalid parameter passed to C runtime function.
Отправлено: demaker от Сентябрь 19, 2013, 14:37
Блин точно
Вот так надо
Код
C++ (Qt)
...        
beginRemoveRows(index.parent(),row,row);
...