Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема при работе с указателями [D7, WinXP]


Страницы:   1 2

Zilog_ ©   (2006-05-15 12:59:00) 

Уважаемые мастера, подскажите, что делаю не так:

type
 TVoice = record
 Data:pointer; //ññûëêà íà äàííûå
 DataSize:integer;
 id:integer;
 FreeIt: boolean;  
 end;

.......

procedure TServerVoice.SendVoiceMessage(cmd:string; const buffer; BufferSize:integer; id:integer);
var
pInt:^Integer;
pBuffer:pointer;
Voice:TVoice;
DataSize:integer;
begin
DataSize:=BufferSize+6+Length(cmd);
GetMem (pBuffer, DataSize);
Voice.Data:=pBuffer;

pBuffer:=ptr(Cardinal(pBuffer)+6);
string(pBuffer^):=cmd;
pBuffer:=ptr(Cardinal(pBuffer)+length(cmd));
pChar(pBuffer^):=pChar(Buffer);

pInt:=Voice.Data;
pInt^:=DataSize;
Inc(pInt);
pInt^:=Length(cmd);
Inc(pInt);
pInt^:=BufferSize;
end;


При попытке обращения к этой функции получаю Access violation.


Плохиш   (2006-05-15 13:25:00) [21]


> При попытке обращения к этой функции получаю Access violation.

Что отладчик отказывается транслировать эту функцию?


Zilog_   (2006-05-15 13:02:00) [22]

Деббагер вылетает на первой попытке записи cmd: string  в память, причем приращение указателя проходит норамльно


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо