Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.11;
Скачать: CL | DM;

Вниз

Работа с памятью правильно или нет?   Найти похожие ветки 

 
2ksion ©   (2005-08-17 15:15) [0]

Вот код проверьте пожайлусто

procedure TForm1.Button4Click(Sender: TObject);
var
 p:Pointer;
 v,d,g:integer;
 s,m: PChar;
begin
s:="проверка";
v:=lstrlen(s);
d:=v+4;
GetMem(p,d);
move(v,p^,4);
move(s,IncPtr(p,4)^,v);
ShowMessage(inttostr(Sizeof(p)));
move(p^,g,4);
ShowMessage(inttostr(g));
move(IncPtr(p,4)^,m,v);
ShowMessage(strpas(m));
FreeMem(p);
end;

function IncPtr(APointer: pointer; AHowMuch: cardinal = 1): pointer;
begin
//тут наращиваеться адресс Pointer
 Result := Ptr(cardinal(APointer) + AHowMuch);
end;


 
Digitman ©   (2005-08-17 15:17) [1]


> код проверьте пожайлусто


и на какой предмет проверять ?


 
2ksion ©   (2005-08-17 15:27) [2]

на предмет правильности с move


 
Digitman ©   (2005-08-17 17:01) [3]

смотрим в прототип (system.pas):

procedure Move(const Source; var Dest; Count: Integer);

делаем умозаключения :

1. move(v,p^,4); - неверно : v не является адресом источника (Source)

2. move(s,IncPtr(p,4)^,v); - неверно : s не является адресом источника

а дальше и рассматривать нет резона.


 
Digitman ©   (2005-08-17 17:03) [4]


> d:=v+4;


это - какое-то шаманское таинство, мне неведомое.


 
Digitman ©   (2005-08-17 17:07) [5]

и вообще - галиматья полная в приведенном коде.


 
Anatoly Podgoretsky ©   (2005-08-17 20:30) [6]

2ksion ©   (17.08.05 15:27) [2]
Неправильно


 
Defunct ©   (2005-08-18 01:50) [7]

> ShowMessage(inttostr(Sizeof(p)));

Это задумывалось для вывода на экран количества выделенной памяти?



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

Текущий архив: 2005.09.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.045 c
3-1122397417
pasha_golub
2005-07-26 21:03
2005.09.11
Cached updates. To be or not to be?


9-1116081379
Sakhnov K S
2005-05-14 18:36
2005.09.11
Всех прошу о помощи! - протестируйте игрушку


2-1123330614
dezdemona
2005-08-06 16:16
2005.09.11
kak ispolzovat Canvas na procedure?


3-1122958157
Kara
2005-08-02 08:49
2005.09.11
Изменяемая ячейка StringGrid


3-1122621347
-=snoop=-
2005-07-29 11:15
2005.09.11
отображение в TDBgrid