реклама на сайте
подробности

 
 
> Возвращение указателя на динамический массив
Nikitoc
сообщение Mar 1 2012, 15:03
Сообщение #1


Местный
***

Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367



Всем привет!
Вопросик простой, но для полноты картины происходящего в компиляторе (или в МК) мне нужно этот вопрос разъяснить. Допустим, есть какая-то функция:
Код
WORD *Multiple (BYTE A, BYTE B){
           WORD *result;
           result = (WORD *)malloc(1);
           *result = A * B;
           return result;
       }


Собственно вопросы:

1. Где необходимо удалять эту переменную result (я имею в виду вызов ф-ции free())? Только в той функции, в которой она была выделена (Multiple()) или же можно сделать это в вызывающей функции по полученному указателю?
2. Я правильно понимаю, что возвращать указатель можно потому, что динамически выделенная переменная помещается в кучу, а не в стек?
3. Как называется область оперативной памяти, которая не отводится под кучу или стек? Как она используется компилятором (что туда "ложится")?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Nikitoc   Возвращение указателя на динамический массив   Mar 1 2012, 15:03
- - ys05   Цитата(Nikitoc @ Mar 1 2012, 18:03) 1. Гд...   Mar 1 2012, 15:59
- - toweroff   ойой возвращать из функции адрес локальной перемен...   Mar 1 2012, 16:09
|- - xemul   Цитата(toweroff @ Mar 1 2012, 20:09) ойой...   Mar 1 2012, 16:20
|- - toweroff   Цитата(xemul @ Mar 1 2012, 20:20) Возвращ...   Mar 1 2012, 16:40
- - Сергей Борщ   QUOTE (Nikitoc @ Mar 1 2012, 17:03) 1. Гд...   Mar 1 2012, 18:18
|- - toweroff   Цитата(Сергей Борщ @ Mar 1 2012, 22:18) И...   Mar 1 2012, 18:28
|- - xemul   Цитата(Сергей Борщ @ Mar 1 2012, 22:18) К...   Mar 1 2012, 18:54
|- - _Pasha   Цитата(xemul @ Mar 1 2012, 21:54) Я не пр...   Mar 2 2012, 01:34
- - Nikitoc   Всем спасибо за ответы. Вопрос Сергею: я спросил п...   Mar 1 2012, 18:54
- - _Ivana   Это стОит того, чтобы ждать! Так и я пойму да...   Mar 1 2012, 19:39
- - Сергей Борщ   QUOTE (toweroff @ Mar 1 2012, 20:28) то е...   Mar 1 2012, 19:44
- - toweroff   Цитата(Сергей Борщ @ Mar 1 2012, 23:44) В...   Mar 1 2012, 19:51
|- - Сергей Борщ   QUOTE (toweroff @ Mar 1 2012, 21:51) полу...   Mar 1 2012, 20:10
- - Nikitoc   Сергей, спасибо Вам большое. Разжевано предельно п...   Mar 1 2012, 19:57
- - _Ivana   Со стеком имхо ничего не поможет справиться, кроме...   Mar 1 2012, 20:00
|- - toweroff   Цитата(_Ivana @ Mar 2 2012, 00:00) Со сте...   Mar 1 2012, 20:03
- - _Ivana   Как интересно-то! Лично я бы стал пользоватьс...   Mar 1 2012, 20:17
|- - XVR   Цитата(_Ivana @ Mar 2 2012, 00:17) Если ф...   Mar 2 2012, 08:40
- - toweroff   То есть "в лоб" - (как уже упомянали) - ...   Mar 1 2012, 20:24
- - _Ivana   Ладно, уговорили: free_всё_кроме_заполненного_масс...   Mar 1 2012, 20:30
|- - Сергей Борщ   QUOTE (_Ivana @ Mar 1 2012, 22:30) просто...   Mar 1 2012, 20:55
- - toweroff   Цитата(_Ivana @ Mar 2 2012, 00:30) Ладно,...   Mar 1 2012, 21:00
- - _Ivana   Это было на правах фантазии дилетанта Убирать в к...   Mar 1 2012, 21:07
- - _Ivana   XVR спасибо, очень интересно и познавательно!   Mar 2 2012, 15:00
- - Idle   Цитатаresult = (WORD *)malloc(1); вылезаешь за гра...   Mar 3 2012, 13:41


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.02259 секунд с 7
ELECTRONIX ©2004-2016