Форум: "Начинающим";
Текущий архив: 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.006 c