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

Вниз

Последовательный доступ к памяти   Найти похожие ветки 

 
Riply ©   (2006-10-26 18:29) [0]

Добрый вечер !
Скажите пожалуйста, могу ли я быть уверена, что в процедуре:
procedure MyProc(var pData: Pointer);
var
i: integer;
Ptr: Pointer;
begin
ReallocMem(pData, 1024 * SizeOf(Integer));
Ptr:= pData;
for i:= 0 to 1023 do
 begin
  CopyMemory(Ptr, @i, SizeOf(Integer));
  Ptr:= Pointer(Integer(Ptr) + SizeOf(Integer));
 end;
end;

я пишу именно в pData ?
Т. е. Не может ли быть такого, что pData "разбита на кусочки" ?


 
Ketmar ©   (2006-10-26 18:49) [1]

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


 
Leonid Troyanovsky ©   (2006-10-26 18:53) [2]


> Riply ©   (26.10.06 18:29)  

>   CopyMemory(Ptr, @i, SizeOf(Integer));


Не надо CopyMemory.
Во-первых, есть Move.
Во-вторых первое лишь вызывает второе.

--
Regards, LVT.


 
Riply ©   (2006-10-26 19:01) [3]

Спасибо


 
Riply ©   (2006-10-26 19:05) [4]

>Ketmar ©   (26.10.06 18:49)
И вовсе не "хихик"
Я вот не сумела найти где это написано: "любая операция выделения памяти или
выделяет последовательный кусок или падает."


 
Leonid Troyanovsky ©   (2006-10-26 19:05) [5]


> Riply ©   (26.10.06 18:29)  

>   Ptr:= Pointer(Integer(Ptr) + SizeOf(Integer));


Обычно поступают так:
объявляют тип массив некоторой (большой) размерности,
и используют PMyArray = ^TMyArray для доступа к
его элементам, т.е. PMyArray(Ptr)[i] := ..

На худой конец: inc, dec знают арифметику типизированных указателей.

--
Regards, LVT.


 
Ketmar ©   (2006-10-26 19:13) [6]

>[4] Riply(c) 26-Oct-2006, 19:05
>И вовсе не "хихик"
>Я вот не сумела найти где это написано
у меня в [1]. %-)
голова -- она не только для еды. как ты думаешь, если бы эти операции возвращали фрагментированую память, были бы в Delphi специальные конструкции для работы с указателями и фрагментированой памятью? ага. а их -- нет.

а ещё есть чудесная вещь такая -- исходники memory manager. %-)

зыж моё "хихик" обозначает вовсе не издёвку. издеваюсь я по-другому. %-)



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

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

Наверх




Память: 0.48 MB
Время: 0.04 c
15-1161509128
sniknik
2006-10-22 13:25
2006.11.12
Ктонибудь смотрит мульт по музтв "Улетный Trip"?


15-1161509757
Kerk
2006-10-22 13:35
2006.11.12
Как научить человека не искать в критической ситуации отмазки,


15-1161894050
ArtemESC
2006-10-27 00:20
2006.11.12
Си - удаление и выделение памяти под указатели...


15-1161608930
landeron
2006-10-23 17:08
2006.11.12
картинки


6-1150711485
kolj
2006-06-19 14:04
2006.11.12
передача файлов через TserverSocket TclientSocket