|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2012, 07:58 | #1 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 162
|
[C++] Не удаётся удалить динамическую строку, которую вернула функция
Здравствуйте.
Всё время я не заморачивался насчёт освобождения кучи, и вот настал момент, когда дипломный проект может из-за этого сильно пострадать. по сабжу: У меня есть структуры данных и функция DataToString у каждой, для превращения всех полей в одну строку, указатель на которую она возвращает к источнику вызова. Источник читает данные, а строка продолжает висеть в памяти. В одной теме сказали очевидную вещь: "Удалить указатель, в который записывается результат функции", но у меня чёто не получается =). Напишу короткий упрощенный код (вставлю псевдомакросы), как я это делаю: Код:
Ребят, если кого не затруднит, напишите, пожалуйста, как работать со ссылками на строку. Полный код затронутых функций: Код:
С наилучшими пожеланиями.
|
18.05.2012, 15:30 | #2 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 162
|
скорее всего я неверно выделял память. Может быть даже new не было...
Так работает Код:
UPD: Да. Похоже, что я пытался применить delete к char[]. Я запутался в потоке данных и теперь не различаю, какая функция возвращает ссылку на поле, а какая - на созданный массив. UPD через час: Все-таки я не тестировал свою функцию еще... А ведь она все еще дает ошибку. Но я, пересмотрев эту функцию, понял в чем ошибка. Сначала я обвинил strcat'ы, но виноват я. Я невнимательно подсчитал индекс последней строки, и закрывающий нуль-символ ставлю куда-то за пределы строки. Не удаляется, наверное, потому что строка не оканчивается нулём. Код:
С наилучшими пожеланиями.
Последний раз редактировалось Познающий; 18.05.2012 в 16:51. Причина: Эврика |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как нарисовать в OpenGL сферу которую которую можно рассматривать с разных ракурсов | Sh0cK | Мультимедиа в Delphi | 2 | 07.11.2017 14:51 |
функция получае на вход строку чисел, выводит строку символов | DellOleg | Microsoft Office Access | 2 | 18.02.2012 11:17 |
задача на Си,Ввести строку, в которую могут входить только цифры и буквы. | vinternete | Помощь студентам | 0 | 11.07.2011 12:35 |
VBA_макрос: удалить всю строку в таблице, если в ней есть слово "удалить" | макарошка | Microsoft Office Excel | 15 | 05.10.2010 09:09 |
Как записать (считать) динамическую строку в (из) файл(а)? C++ | Сергей089 | Помощь студентам | 2 | 10.02.2010 22:00 |