Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];

Вниз

Можно ли занять память таким способом   Найти похожие ветки 

 
Chorniyy   (2009-09-24 02:26) [0]

В глобальных переменных объявлен указатель Р, внутри процедуры я выделяю память под указатель NewP, и присваиваю P новое значение.

var P: Pointer;

Procedure MemChange;
var NewP: Pointer;
begin
 GetMem(NewP,100);
 P := NewP;
end;


встает вопрос: будет ли программа "знать" о том, что память занята указателем P после завершения процедуры MemChange?

если не будет, то как сделать так чтобы память, выделенная для указателя внутри локальной процедуры, была присвоена глобальному указателю.


 
Германн ©   (2009-09-24 02:39) [1]


> встает вопрос: будет ли программа "знать" о том, что память
> занята указателем P после завершения процедуры MemChange?
>
>

Память не может быть "занята указателем"!


 
Chorniyy   (2009-09-24 02:52) [2]


> Память не может быть "занята указателем"!


конечно сам указатель не занимает никакую память (кроме своих 4 байт)

попробую по другому задать вопрос.

Procedure MemChange;
var NewP: Pointer;
begin
GetMem(NewP,100);
end;


после завершения процедуры MemChange память выделенная под NewP освободится?

и освободится ли она в этом случае?:
Procedure MemChange;
var NewP: Pointer;
begin
GetMem(NewP,100);
P := NewP;
end;


 
Германн ©   (2009-09-24 03:04) [3]


> Chorniyy   (24.09.09 02:52) [2]
>
>
> > Память не может быть "занята указателем"!
>
>
> конечно сам указатель не занимает никакую память (кроме
> своих 4 байт)
>
> попробую по другому задать вопрос.
>
> Procedure MemChange;
> var NewP: Pointer;
> begin
> GetMem(NewP,100);
> end;
>
> после завершения процедуры MemChange память выделенная под
> NewP освободится?
>

Нет. Не освободится.

> и освободится ли она в этом случае?:
> Procedure MemChange;
> var NewP: Pointer;
> begin
> GetMem(NewP,100);
> P := NewP;
> end;
>

А этот случай ни чем не отличается от предыдущего.


 
Германн ©   (2009-09-24 03:07) [4]

Кстати.
Термин "освободится" для выделенной приложению памяти не очень подходит.


 
Chorniyy   (2009-09-24 03:08) [5]


> А этот случай ни чем не отличается от предыдущего.

угу. если не освободится, то не отличается.

Спасибо за ответ.


 
Германн ©   (2009-09-24 03:19) [6]


> Chorniyy   (24.09.09 03:08) [5]
>
>
> > А этот случай ни чем не отличается от предыдущего.
>
> угу. если не освободится, то не отличается.
>
> Спасибо за ответ.
>

Ты бы почитал бы книжки. (Учебники).


 
Leonid Troyanovsky ©   (2009-09-24 07:49) [7]


> Chorniyy   (24.09.09 02:26)  

> В глобальных переменных объявлен указатель Р,

Глобальные переменные - MD.

И нет нужды в подобных процедурах, оно делается в секциях
initialization/finalization, которые, во-ще-то, тоже MD.

--
Regards, LVT.


 
Сергей М. ©   (2009-09-24 08:35) [8]


> Leonid Troyanovsky ©   (24.09.09 07:49) [7]


Всё фигня кроме пчёл.
Да и пчёлы тоже фигня.

))



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
2-1253182279
vegarulez
2009-09-17 14:11
2009.11.08
Народ нид хелп! Срочно!


8-1199266718
ТупойПрограммер
2008-01-02 12:38
2009.11.08
Запись миди файла


2-1253656832
redlord
2009-09-23 02:00
2009.11.08
ansistring


2-1253003813
новый
2009-09-15 12:36
2009.11.08
pointer. Не могу разобраться...


2-1253616806
night_light
2009-09-22 14:53
2009.11.08
передача динамического массива в CreatePolygonRgn





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский