Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
psdmaster
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 44
#1

Как отследить ошибку "Stack around the variable was corrupted."? - C++

21.02.2013, 23:46. Просмотров 297. Ответов 7
Метки нет (Все метки)

Вообщем код большой. Несколько классов, десяток функций. Ошибка всплывает только после завершения функции main(). Вот как бы научить компилятор прерываться на той строчке когда значение присваивается не существующему элементу массива.

У меня Microsoft Visual studio.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,505
Записей в блоге: 2
Завершенные тесты: 1
21.02.2013, 23:47     Как отследить ошибку "Stack around the variable was corrupted."? #2
Цитата Сообщение от psdmaster Посмотреть сообщение
Ошибка всплывает только после завершения функции main()
Скорее всего, где-то выход за пределы массива. Пройдите в пошаговом режиме
psdmaster
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 44
21.02.2013, 23:53  [ТС]     Как отследить ошибку "Stack around the variable was corrupted."? #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Скорее всего, где-то выход за пределы массива. Пройдите в пошаговом режиме
Вот этого как раз делать не хочется. Долго и муторно. Я поэтому и спрашиваю можно ли чтоб сообщение об ошибке появлялось именно в момент не правильного присвоения.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
22.02.2013, 01:27     Как отследить ошибку "Stack around the variable was corrupted."? #4
valgrind?
psdmaster
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 44
22.02.2013, 13:24  [ТС]     Как отследить ошибку "Stack around the variable was corrupted."? #5
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
valgrind?
А подробнее можно?
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12534 / 7096 / 797
Регистрация: 27.09.2012
Сообщений: 17,505
Записей в блоге: 2
Завершенные тесты: 1
22.02.2013, 13:39     Как отследить ошибку "Stack around the variable was corrupted."? #6
Цитата Сообщение от psdmaster Посмотреть сообщение
А подробнее можно?
Википедия - Valgrind
psdmaster
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 44
22.02.2013, 16:20  [ТС]     Как отследить ошибку "Stack around the variable was corrupted."? #7
Цитата Сообщение от Croessmah Посмотреть сообщение
А под винду есть что-нибудь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 16:40     Как отследить ошибку "Stack around the variable was corrupted."?
Еще ссылки по теме:

C++ Stack around the variable was corrupted
Ошибка "stack around the variable 'n' was corrupted." C++
C++ Строка как массив символов. Stack around the variable 'qu' was corrupted
C++ Ошибка "Stack around the variable 'a' was corrupted" при завершении программы
Ошибка при работе с массивом: "Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted." C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,911
Завершенные тесты: 1
22.02.2013, 16:40     Как отследить ошибку "Stack around the variable was corrupted."? #8
Вместо массивов пользуйся vector, для доступа к элементам вместо квадратных скобок используй функцию at
C++
1
2
3
4
5
6
7
8
9
10
11
void foo1()  // Вместо такого
{
    int a[10];
    a[14] = 5;
}
 
void foo2()   // Пишем такое:
{
    std::vector<int> a(10);
    a.at(14) = 5;   // Вот на этом месте немедленно произойдёт выброс исключения
}
Yandex
Объявления
22.02.2013, 16:40     Как отследить ошибку "Stack around the variable was corrupted."?
Ответ Создать тему
Опции темы

Текущее время: 18:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru