Название: QT vs Работа с указателями Отправлено: dilvishdd от Январь 09, 2009, 20:53 Возникает подозрение насчет работы указателей в QT.4.4.0
когда заливаю в таблицу данные с массива портяться указатели, отдельно отработаный код с использованием указателей работает нормально Qt собиралося с помощью configure и nmake на MVS2008 Название: Re: QT vs Работа с указателями Отправлено: Rcus от Январь 09, 2009, 21:08 Цитировать Даже если ошибка поначалу кажется не вашей, в ваших же интересах полагать, что справедливо обратное. Это предположение помогает в отладке. Ожидаемый дефект обнаружить в коде трудно; если вы полагаете, что ошибок в вашем коде нет, найти их еще труднее. СС2e, страница 529, стих первый.Название: Re: QT vs Работа с указателями Отправлено: Dendy от Январь 09, 2009, 21:11 0. QT - это аббревиатура Apple QuickTime, правильно - Qt.
1. В русском языке нет слова "портяться". 2. Телепаты в отпуске. Название: Re: QT vs Работа с указателями Отправлено: Dendy от Январь 09, 2009, 21:15 Rcus, подписываюсь.
Каждый проходит стадию "мой код клёвый, это у них всё глючит". Быстрее начнёте ставить под сомнение собственный код - быстрее обнаружите ошибку. Название: Re: QT vs Работа с указателями Отправлено: dilvishdd от Январь 09, 2009, 22:03 прошу извинить что не кинул,просто сомневаюся что у кого то будет желание разбирать его
несколько раз перекампилировал Код: /* ptwi = new QTableWidgetItem(QString("%1").arg(i*n+j+1)); tbl.setItem(i, j, ptwi); єтих строчек приводит к полной неработоспособности Название: Re: QT vs Работа с указателями Отправлено: Alex Custov от Январь 09, 2009, 22:16 Цитировать портяться указатели в смысле от них плохо пахнет? Без кода сложно сказать. Название: Re: QT vs Работа с указателями Отправлено: xintrea от Январь 10, 2009, 00:29 Это у меня что-то глючит, или код действительно так отформатирован?
(http://i.piccy.info/i3/71/e8/3f892a2de413c248f261a02b3c4b.jpeg) (http://i.piccy.info/i3/24/9a/b1c5e9d42275d653bfaf4a0b09b8.png) http://i.piccy.info/i3/24/9a/b1c5e9d42275d653bfaf4a0b09b8.png (http://i.piccy.info/i3/24/9a/b1c5e9d42275d653bfaf4a0b09b8.png) Название: Re: QT vs Работа с указателями Отправлено: dilvishdd от Январь 10, 2009, 00:31 чето глючит
Название: Re: QT vs Работа с указателями Отправлено: Rcus от Январь 10, 2009, 01:24 1. Курите учебники по C /*отказывается верить, что это C++*/, точнее раздел по различным типам памяти (отличие стека и кучи).
2. Старайтесь ограничивать вложенность, код будет гораздо легче читать. Я стараюсь ограничивать себя двумя уровнями вложенности, в редких случаях используя третий уровень. (читать CC2e часть четвертая, стих 19.4, хотя лучше бы прочитать все писание) 3. Это не Qt вашу память портит, попробуйте туда поставить что-нибудь типа и переходите к пункту первому. Код
Название: Re: QT vs Работа с указателями Отправлено: Tonal от Январь 11, 2009, 11:58 Похоже на выход за границу массива. При этом портится куча и операции с ней приводят к взрыву. :)
Для полной уверенности, нужно тип matr, код инициализации matr, код объявления типа matr, код .add_element и код настройки tbl. :) Название: Re: QT vs Работа с указателями Отправлено: Rcus от Январь 11, 2009, 12:11 Код был прикреплен в 5 сообщении, но из-за сбитого форматирования читать его непросто.
Код nuf said Название: Re: QT vs Работа с указателями Отправлено: Tonal от Январь 11, 2009, 12:24 Классно!
Т.е. если данные не инициализировать, и вовсю запоминать указатели на локальные объекты, то естественно из за Qt всё и упадёт! :D Похоже автор про инициализацию и объекты на стеке не в курсе. :( Название: Re: QT vs Работа с указателями Отправлено: Rcus от Январь 11, 2009, 13:00 Да ладно, когда я изучал C++ моей первой ошибкой было именно сохранение указателя на стековый объект (В языке Delphi нет стековых объектов, все в куче :))
Правда любой инструмент по контролю памяти такие ошибки ловит на раз (CodeGuard(BCB), Valgrind, BoundsChecker) |