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

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

Войти
Регистрация
Восстановить пароль
 
ExFau$t
293 / 269 / 47
Регистрация: 08.05.2012
Сообщений: 1,454
#1

Ошибка в завершении работы программы - C++

17.05.2014, 19:42. Просмотров 305. Ответов 9
Метки нет (Все метки)

...
C++
1
2
3
4
5
6
7
8
9
10
char s1[30];
std::cout<<"Enter the file name\n";
    std::cin>>s1;
    if ((f=fopen(s1,"r"))==NULL)
    {
        perror("");
        std::cout<<"please enter someone key to exit...\n";
        _getch();
        return 2;           
    }
...
Программа компилируется и работает нормально, но при завершении выдает ошибку: Stack around the variable 's1' was corrupted. Переменная s1 в программе больше не встречается и в циклы не попадает, вводимое имя файла не превышает пяти символов, однако происходит выход за пределы стека. Как устранить такую проблему?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 19:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в завершении работы программы (C++):

Ошибка при завершении работы программы - C++
Написал программу, но при завершении выдает ошибку. Помогите понять с чем это связанно?

Закрытие именованного канала при завершении работы программы - C++
Добрый день. Пример: int main() { CreateNamedPipe(...); return 0; }

ошибка при завершении программы - C++
возникает ошибка при завершении программы. при чем после вывода на экран последней строчки. с чем это может быть связано?

Ошибка при завершении программы - C++
Добрый вечер! Помогите плиз, у меня после завершения программы она зависает... Методом тыка) определил что после завершения проги,...

Ошибка компилятора при завершении программы - C++
Я так подозреваю, что где то происходит выход за пределы массива. Хоть vector используй, хоть любую другую структуру, класс или массив,...

Ошибка "Stack around the variable 'a' was corrupted" при завершении программы - C++
Учусь создавать списки. Идея такова чтобы создать список в отдельном cpp, а пользователь имел доступ только к функциям добавления, удаления...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
17.05.2014, 19:48 #2
Может, Вы ввели имя файла длиннее, чем 29 символов?
0
ExFau$t
293 / 269 / 47
Регистрация: 08.05.2012
Сообщений: 1,454
17.05.2014, 19:50  [ТС] #3
"не превышает 5 символов"
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
17.05.2014, 19:55 #4
Цитата Сообщение от ExFau$t Посмотреть сообщение
Переменная s1 в программе больше не встречается
Она может быть испорчена при записи в другую переменную.
Приведите код целиком.
0
ExFau$t
293 / 269 / 47
Регистрация: 08.05.2012
Сообщений: 1,454
17.05.2014, 20:01  [ТС] #5
s1 больше не используется
0
IrineK
Заблокирован
18.05.2014, 02:41 #6
Считывайте строку так:

C++
1
2
3
fgets (s1, 30, stdin);
if (s1[strlen(s1)-1] == '\n')
  s1[strlen(s1)-1] - '\0';
0
ExFau$t
293 / 269 / 47
Регистрация: 08.05.2012
Сообщений: 1,454
18.05.2014, 09:44  [ТС] #7
Считывается имя файла просто с экрана, а не запись из файла
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
18.05.2014, 11:13 #8
Цитата Сообщение от ExFau$t Посмотреть сообщение
s1 больше не используется
Это не важно. Выход за границы мог быть в другом массиве,
который расположен в памяти рядом с s1.
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.05.2014, 11:54 #9
ExFau$t, вы хотите чтобы вам помогли найти ошибку? Если да, то:
Цитата Сообщение от zss Посмотреть сообщение
Приведите код целиком.
Или сами ищите.
0
ExFau$t
293 / 269 / 47
Регистрация: 08.05.2012
Сообщений: 1,454
18.05.2014, 21:50  [ТС] #10
В коде 1500 строк и никаких указаний на места в памяти
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2014, 21:50
Привет! Вот еще темы с ответами:

Очистка памяти при завершении работы функции, как правильно возвращать значения? - C++
Я вывел для себя 2 способа возвращать значения работы функции string Add(string a1, string a2) { string returnStr; returnStr +=...

Динамические массивы. Ошибка в процессе работы программы. - C++
по заданию нужно сделать все с помощью функций , написал код и запутался , программа запускается но выдает ошибку в процессе работы ...

Ошибка при написание программы работы с файлами - C++
Очень прошу, помогите разобраться и устранить ошибку, не могу понять что не так. #define _CRT_SECURE_NO_WARNINGS #define...

Ошибка при завершении программа. - C++
Проблема в следующим когда я создаю динамический массив объект при завершении программы вылетает ошибка не пойму в чем проблема ??? ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.05.2014, 21:50
Ответ Создать тему
Опции темы

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