![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Господа, прошу помощи. Есть процедура. Не так уж важно, что она делает, но выглядит она так:
Как только прога доплюхивает до первого free, возникает unhadled exception.... access violation по адресу. Кто-нибудь знает, что я не так делаю? Заранее благодарен. Добавлено @ 13:54 Чтоб вы все-таки не подумали, что я что-то скрываю ![]() |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Что-то я не увидела кода, который выделяет память указателю rez. А free ты вызываешь...
Может ты думаешь, что strcat память выделяет? Это не так... -------------------- ... |
|||
|
||||
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Вообще-то, да. Я думал, что раз уж strcat куда-то склеенное помещает, то она и выделяет сама, и указатель на тот адрес дает.
Попробовал так:
Картина та же - исключение никуда не девается. Интересно, что так случается не только для rez, а и для двух других указателей. У меня есть версия, но я в Сях чайник, так что не знаю, насколько она дурацкая. После "rez=strcat(mant, sz); startpow=aexp-1;" rez и mant указывают на один блок памяти так? А потом я пытаюсь один и тот же блок освободить два раза? Может, из-за этого? |
|||
|
||||
Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: нет Всего: 6 |
Всё, проблема решена. Оказывается, при вызове strcat, в первой склееваемой строке должно быть место для второй. Первая юзается как буфер. А я думал, сумма строк складывается в какое-то другое место. В общем, всё заработало в таком вот виде:
Earnest, спасибо) Это сообщение отредактировал(а) Тутанхамец - 22.1.2006, 15:05 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |