|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.08.2015, 12:38 | #1 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
Указатель типа char
Всем доброго дня !
Заметил что компилятор позволяет присваивать строку указателю в разных местах. Безымянный.jpg Код:
при выводе на экран выяснилось, что адреса в s при первом и втором присвоении строки изменились. Произошла ли при этом утечка памяти ? Строка "Hi Julia" досех пор сидит в куче ? Последний раз редактировалось Stilet; 30.08.2015 в 15:55. |
30.08.2015, 12:42 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
нет строка не в куче.
адреса изменились это логично. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
30.08.2015, 12:51 | #3 |
Заблокирован
Регистрация: 06.02.2011
Сообщений: 1,999
|
В данном случае почему произошла утечка ?
Код:
Последний раз редактировалось Stilet; 30.08.2015 в 15:54. |
30.08.2015, 14:10 | #4 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Выделение памяти:
Код:
А вот: Код:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 30.08.2015 в 14:12. |
30.08.2015, 15:49 | #5 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,603
|
Строки "Hi Julia" и "Hello Oksana" в секции констант PE .rdata, значит утечки памяти в первой программе нет, оно не из кучи выделяется.
Во второй программе "Hi Julia" в секции .rdata а "Hello Oksana" в секцкии .idata (ошибка, во второй программе тоже строки в секции констант) .idata это импортируемые данные. во второй программе утечка (нет delete и адрес изменился) Описание PE: http://msdn.microsoft.com/library/wi...dware/gg463125
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
Последний раз редактировалось challengerr; 31.08.2015 в 06:58. |
30.08.2015, 22:07 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а зачем секция idata для константы той же?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
31.08.2015, 06:57 | #7 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,603
|
Я пересмотрел еще раз - вчера я ошибся, во второй программе "Hello Oksana" тоже в секции констант .rdata а .idata не используется.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатель на элемент объекта типа UnicodeString | imagepicture | C++ Builder | 1 | 27.12.2012 11:37 |
указатель на char | goluzov | Общие вопросы C/C++ | 2 | 27.04.2012 09:04 |
Cи. Переменная типа char | McFrey | Помощь студентам | 12 | 14.04.2012 20:49 |
Возможно ли в массив типа char записать первым элементом значение переменной типа float? | Green Gin | Общие вопросы C/C++ | 2 | 05.12.2011 01:50 |
Запись числа типа инт в ячейку двумерного массива типа char | AxenicX | Помощь студентам | 1 | 25.09.2009 00:35 |