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

Вниз

Что-то я с поинтерами запутался...   Найти похожие ветки 

 
МИФИст ©   (2002-06-07 15:00) [0]

Помогите кто чем может =)
У меня есть процедура
procedure Decoder(Data: Pointer; RecvBytes: Word);
в которую моя программа часто "забегает"
мне нужно в этой процедуре заполнять массивы
ArrPointer: array[0..4999] of Pointer;
ArrBuffer: array[0..4999] of PChar;
ArrLength: array[0..4999] of Word;

я в процедуре делаю так

ArrPointer[i]:=@Data;
ArrLength[i]:=RecvBytes;
CopyMemory(@ArrBuffer[i],@ArrPointer[i],ArrLength[i]);

далее мне нужно пойти в процедуру
procedure DataPrint(Data: PChar; RB: Word);

если я делаю из предыдущей процедуры вызов
DataPrint(@Data,RecvBytes);
то данные корректные, а если
DataPrint(@ArrPointer[i],ArrLength[i]);
или
DataPrint(ArrBuffer[i],ArrLength[i]);
то не корректные.

В чём ошибка, или как это лучше организовать?


 
esVer   (2002-06-07 22:50) [1]

Data: Pointer
ArrPointer: array[0..4999] of Pointer
почему ???
ArrPointer[i]:=@Data;
по идее
ArrPointer[i]:=Data;


 
МИФИст ©   (2002-06-08 18:49) [2]

Если так, то в ArrPointer помещается nil.


 
FND   (2002-06-11 00:32) [3]

При объявлении процедуры напиши:
procedure Decoder(Var Data: Pointer; RecvBytes: Word);
а дальше...
по идее
ArrPointer[i]:=Data;


 
McSimm ©   (2002-06-11 10:03) [4]

В процедуру Decoder передается Data типа Pointer.
Элемент массива тоже имеет тип Pointer.
Поэтому при
ArrPointer[i] := Data;
Элемент массива должен принять значение Data.
И если он принимает значение nil, значит в Data было значение nil.

Выполнение же
ArrPointer[i] := @Data;
есть запоминание адреса локальной переменной, что не имеет смысла
-------

Перед выполнением
CopyMemory(@ArrBuffer[i]....
была ли выделена память?

-------



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
3-77319
Sam
2002-05-31 10:35
2002.06.24
2 вопроса


14-77608
MisterBin
2002-05-16 21:24
2002.06.24
Кто какую музыку слушает когда пишет программу?


7-77648
Monak
2002-03-28 08:41
2002.06.24
Клава и мышь!


1-77433
UserL
2002-06-11 11:21
2002.06.24
Никак не получаеться.


3-77299
Kombat
2002-05-30 13:39
2002.06.24
Большие базы в InterBase/FireBird