![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Malloc |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 16.8.2005 Где: Челябинск, ЧМЗ Репутация: нет Всего: нет |
При вызове этой функции
программа останавливаенся на
этой строчке и пишет "Access violation...". (Какой-то глюк из-за указателя). Эта функция вот что делает: есть указатель outstr типа char. Он указывает на какую-то строку. Эта функция добавляет к этой строке строку str длины n. pSize - длина outstr. Вопрос: почему при освобождении памяти указателем outstr программа выдает сообщение "Access violation..."? И как это устранить (Если надо, я поясню подробнее) |
||||
|
|||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
А где этот самый outstr и pSize? Это глобальные переменные?
|
|||
|
||||
| Malloc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 16.8.2005 Где: Челябинск, ЧМЗ Репутация: нет Всего: нет |
Это члены класса TMainForm.
Кстати, у меня еще в некоторых местах возникала такая проблема, не только в этой функции. (когда я вызываю delete) |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
А как инициализируется outstr?
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
А может, надо
Попробовать без скобок? |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 3 Всего: 317 |
как то очень странно написанно...
вопросы: 1. почему нет проверки на n, str ? ( если тебе дать n < -SizeB, то ты попросишь у "new" аллоцировать отрицательное кол-во букв) 2. почему нет тестирования благополучности завершения "new " ? 2.1 какой смысл писать "new char(m*sizeof(char))" ? (почему не просто new char(m); )? 3. как определена outstr в классе "TMainForm" ? ( не "const" ли ? ) -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Malloc |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 16.8.2005 Где: Челябинск, ЧМЗ Репутация: нет Всего: нет |
Сегодня исправил эту проблему. Короче, нужно было к строке добавлять другие строки неизвестных длин. Я хотел следать это динамически, т.е. зная длину данной строки и добавляемой, сделать из них новую, делать указатель первой строки на эту новую, а старую удалять.
Потом, намучавшись, я решил для первой строки выделить память (с небольшим запасом, есть верхний предел). Все, тема может быть закрыта. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |