![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
vik5252 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Нужно сделать функцию типа strcat(), но чтоб она прибавляла не всю строку, а указанное количество символов.
Вот код :
Компилируется без ошибок и замечаний, и даже выдает верный результат, но в процессе выполнения Windows XP "выкидывает" на экран окошко с информацией об ошибке "Stack around the variable 'str1' was corrupted", и временно приостанавливает выполнение программы. Кто знает, в чем тут дело? |
|||
|
||||
bronislav |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 334 Регистрация: 29.1.2008 Где: Украина::Донецк Репутация: 2 Всего: 3 |
Ну для начала, вынеси строки из стека - используй динамическое распределение памяти
А как ты складываешь строки? У тебя для строки s1 выделено сначала 14 байт, а потом ты к ним добавляешь информацию из s2, хотя перераспределение памяти не делаешь. Вот система и ругаеться, что ты обращаешься к памяти, которая тебе не принадлежит. Да и само сложение строк у тебя как-то криво реализовано -------------------- ![]() иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes |
|||
|
||||
vik5252 |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 4.5.2008 Репутация: нет Всего: нет |
Вот так всегда, ищешь, ищешь - бесполезно.
Как написал на форум, через несколько минут нашел. Здесь в строку str1 функция summa_strok добавляет символы. А объявлена эта строка, как массив из 14-ти символов, и когда добавляются еще символы - то неизвестно, какая (возможно важная) информация при этом стирается. Нужно определить эту строку не так :
а, например, так :
Сам с собой пообщался - и уже веселей ![]() Добавлено через 2 минуты и 15 секунд А чего криво-то ? Ну покажи тогда, как надо, чтоб не криво было ? Добавлено через 3 минуты и 33 секунды А до динамического распределения памяти я еще не дочитал ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |