Возможный дубликат:
C ++ Доступ к массиву вне границ не дает ошибок, почему?
У меня есть повторяющаяся проблема с массивом с помощью Qt Creator на Windows. Когда моя программа пытается получить доступ к ячейке памяти, которая не существует, происходят случайные сбои, поэтому ее очень трудно отладить.
Есть ли какая-либо библиотека или опция, чтобы проверить, чтобы остановить программу, когда моя программа обращается к несуществующей ячейке памяти?
Пример:
int * toto = new int [4];
toto[6] =2;
Приводит к упомянутому случайному поведению.
Я на Windows 7 использую Qt Creator 4.8.1.
Как упоминалось в комментарии @axeoth, нет способа проверить, находится ли индекс вне диапазона для массива C ++.
Если вы ищете специфичные для Qt контейнерные классы, вы можете взглянуть на QList<T>
или же QVector<T>
,
Вы можете найти более подробную информацию на Контейнерные классы Qt.
Других решений пока нет …