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

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

Войти
Регистрация
Восстановить пароль
 
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
#1

Падает программа - C++

24.03.2013, 18:00. Просмотров 490. Ответов 7
Метки нет (Все метки)

ошибки нет. предупреждения такого вида: warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

программа нормально работает, все верно показывает, но при завершении падает.
что делать ?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include "iostream"
#include <conio.h> 
using namespace std;
 
void main()
{
    setlocale ( LC_ALL, "Russian" );
    char s1[25]="Hello country.";
    char s2[]="Hello world"; 
    char s3[25]="c++ ";
    cout<<"s1(было до strcat(s1,s2))="<<s1<<endl;
    cout<<"s2                       ="<<s2<<endl;
    strcat(s1,s2);
    cout<<"s1(стало после strcat(s1,s2))="<<s1<<endl;
    
    cout<<"s3(было до strncat(s3,s2,5))="<<s3<<endl;
    cout<<"s2                       ="<<s2<<endl;
    strncat(s3,s2,5);
    cout<<"s3(стало после strncat(s3,s2,5))="<<s3<<endl;
 
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 18:00     Падает программа
Посмотрите здесь:

Падает программа с opencv - C++
Код #include &lt;cv.h&gt; #include &lt;highgui.h&gt; int main() { // задаём высоту и ширину картинки int height = 620; ...

Почему падает программа? - C++
Почему падает программа? Компилируется без ошибок, но при запуске аварийное завершение работы. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; ...

Программа падает без printf - C++
Пишу простую программу, которая в цикле запускает другую, меняя один из аргументов от нуля до 700. Два одинаковых варианта, с printf...

Падает программа при использовании DLL - C++
Раньше писал DLL для одного приложения, теперь мне понадобилось его использовать в другом. Подключил lib, хедер и саму DLL положил рядом с...

Программа падает при чтении из файлов - C++
В C++ слова читаются из двух файлов.выбивает ошибку.Что можно сделать?

Неожиданно падает программа с библиотекой ffmpeg - C++
Простите, не знал, в какой раздел сунуть и сунил сюда, надеюсь, перенесут по адресу. Суть проблемы: Передается в функцию SDP запрос в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VaJI
7 / 5 / 1
Регистрация: 24.03.2013
Сообщений: 40
24.03.2013, 18:21     Падает программа #2
ГузелькаС, используйте string.h вместо stdafx.h. и что в вашем понятии завершение? если просто закрывать, то раннер будет вам выдавать что программа завершилась с кодом ....) Ваша программа в конце выполнения ждет нажатия любой клавиши и дальше закроется)
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
24.03.2013, 18:24     Падает программа #3
под строку s1 выделено маловато места, возможно.
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
24.03.2013, 18:25     Падает программа #4
вот тут
C++
1
char s1[25]="Hello country.";
исправь на
C++
1
char s1[26]="Hello country.";
ты strcat'ом стек ломаешь.
ГузелькаС
5 / 5 / 0
Регистрация: 04.12.2011
Сообщений: 178
24.03.2013, 18:27  [ТС]     Падает программа #5
а, я поняла свою ошибку)
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
24.03.2013, 18:27     Падает программа #6
Цитата Сообщение от ГузелькаС Посмотреть сообщение
но при завершении падает.
Повреждена память.
Повредили Вы её при этой операции:
C++
1
strcat(s1,s2);
а именно:
s1 - 14 символов
s2 - 11 символов
и того получаем 25 символов плюс завершающий ноль - всего 26, а буфер у Вас 25
VaJI
7 / 5 / 1
Регистрация: 24.03.2013
Сообщений: 40
24.03.2013, 18:30     Падает программа #7
Kuzia domovenok, честно, не знаю, в таком массиве надо регестрировать место под символ конца строки?

Добавлено через 2 минуты
Почему то CodeBlocks по этому поводу даже ни чего не предупредил(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 18:38     Падает программа
Еще ссылки по теме:

Wincript, падает программа при получении SHA256 - C++
Делаю так: BYTE * pbHash; // Хэш WCHAR * wHex; // hex хэша пароля DWORD dwHashLen; // Длина хэш суммы HCRYPTPROV hProv =...

Shared_str реализация - На выходе из деструктора падает программа - C++
Решил реализовать shared_str class shared_ptrMy { private: Storage *st; public:

Динамический массив нулевого размера. Почему не падает программа? - C++
char* p = new char; cout &lt;&lt; &amp;p &lt;&lt; endl; Странно, но всё работает. Хотя если зададим отрицательный размер массива char* p = new char;...

Почему при изменении литерала const char* программа падает? - C++
точнее литерала. ладно, если бы выходил за пределы


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

Или воспользуйтесь поиском по форуму:
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
24.03.2013, 18:38     Падает программа #8
Цитата Сообщение от VaJI Посмотреть сообщение
Почему то CodeBlocks по этому поводу даже ни чего не предупредил(
целостность стека проверяется в конце программы, и то только в дебаг режиме и в отдельно взятом компиляторе.

Добавлено через 4 минуты
хотя не, gcc вот тоже ругается http://liveworkspace.org/code/HD9yY

Добавлено через 1 минуту
а без оптимизации не ругается) похоже при оптимизации добавляется какой-то контроль за стеком, чтоб убедится, что не "переоптимизировали"
Yandex
Объявления
24.03.2013, 18:38     Падает программа
Ответ Создать тему
Опции темы

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