Главная страница
    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.006 c
2-1253875179
sergeii
2009-09-25 14:39
2009.11.08
Помогите с размерами форм


2-1253215998
Артем
2009-09-17 23:33
2009.11.08
tabsheet


15-1252699551
DVM
2009-09-12 00:05
2009.11.08
День программиста утвержден!


2-1253805878
sid
2009-09-24 19:24
2009.11.08
Массивы


1-1223538062
Игорь
2008-10-09 11:41
2009.11.08
Вопрос про GetProcessMemoryInfo





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский