Russian Qt Forum
Июнь 16, 2024, 04:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Ошибка  (Прочитано 9739 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« : Декабрь 13, 2012, 13:08 »

Добрый день
Компилятор выдает ошибку:
Код:
ASSERT: "i >= 0 && i < size()" in file d:\QtSDK\Desktop\Qt\4.7.3\mingw\include/QtCore/qbytearray.h, line 396
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.

Подскажите как от нее избавиться?
Спасибо.

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 13, 2012, 13:09 »

Компилятор? Уверен?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #2 : Декабрь 13, 2012, 13:11 »

 Непонимающий А кто

396 строчка qbytearray.h, line 396
Код:
{ Q_ASSERT(i >= 0 && i < size()); return d->data[i]; }
может в цикле как-то неправильно обращаюсь или в индексах дело.

и еще пишет в консоле
Код:
sotrvu.exe завершился с кодом 3
« Последнее редактирование: Декабрь 13, 2012, 13:15 от demaker » Записан
QtCoder
Гость
« Ответ #3 : Декабрь 13, 2012, 13:16 »

Непонимающий А кто

396 строчка qbytearray.h, line 396
Код:
{ Q_ASSERT(i >= 0 && i < size()); return d->data[i]; }
может в цикле как-то неправильно обращаюсь или в индексах дело.

и еще пишет в консоле
Код:
sotrvu.exe завершился с кодом 3

Ошибка времени исполнения - индекс вышел за пределы массива.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #4 : Декабрь 13, 2012, 13:19 »

Понятно, Грустный
Записан
ssoft
Гость
« Ответ #5 : Декабрь 13, 2012, 13:20 »

Программа (а не компилятор) на этапе выполнения выдает ошибку, избавится от которой можно только, передавая корректный индекс в метод at().
А это предупреждение, что  индекс должен быть в пределах от 0 до размера контейнера ( 0 <= i < size ), не включая сам размер.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Декабрь 13, 2012, 14:42 »

Компилятор выдает ошибку:
Ну прям как колхозник в первый раз увидевший "ПК". За время проведенное на форуме (и написание 277 сообщений) вполне можно было чего-то набраться - пусть не самого хорошего, но чтобы в таких-то азах уж не плавать  Плачущий
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4732



Просмотр профиля WWW
« Ответ #7 : Декабрь 13, 2012, 18:16 »

Компилятор выдает ошибку:
Ну прям как колхозник в первый раз увидевший "ПК". За время проведенное на форуме (и написание 277 сообщений) вполне можно было чего-то набраться - пусть не самого хорошего, но чтобы в таких-то азах уж не плавать  Плачущий
в точности мои (да и думаю многих других участников форума) мысли в культурной форме
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #8 : Декабрь 13, 2012, 18:38 »

Счастлив тот программист, который никогда не видел ассертов Веселый

Ну да придёт знание, да и опыт приобретётся. Если б я с бустом не работал, тоже бы наверно об ассертах незнал Веселый
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4732



Просмотр профиля WWW
« Ответ #9 : Декабрь 13, 2012, 19:01 »

assert() — это вообще сишная функция изначально
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #10 : Декабрь 13, 2012, 19:27 »

assert() — это вообще сишная функция изначально
Это вообще макрос)
Записан

Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
« Ответ #11 : Декабрь 13, 2012, 19:45 »

Ухаха Веселый

А вообще это проверка некоего условия на true/false Улыбающийся (не в укор, не в спор, а просто к сведению незнающим)
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4732



Просмотр профиля WWW
« Ответ #12 : Декабрь 13, 2012, 20:20 »

assert() — это вообще сишная функция изначально
Это вообще макрос)
и правда Улыбающийся
Ухаха Веселый

А вообще это проверка некоего условия на true/false Улыбающийся (не в укор, не в спор, а просто к сведению незнающим)
не просто ж проверка, а убийство программы в случае фолс
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Bepec
Гость
« Ответ #13 : Декабрь 13, 2012, 20:27 »

В совокупности Assert это:

Изначально сишный макрос, производящий проверку некоего условия на равенство true и производящий остановку программы при получении false.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Декабрь 14, 2012, 13:21 »

В совокупности Assert это:

Изначально сишный макрос, производящий проверку некоего условия на равенство true и производящий остановку программы при получении false.
Вместо этих словесных переливаний интересно было бы (по ходу дела) узнать а почему assert не ловится через catch (..)
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.232 секунд. Запросов: 22.