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

Вниз

динамические массивы   Найти похожие ветки 

 
непонимающий   (2006-09-18 12:04) [0]

возникла не большое затруднение, помогите пожалуйста разрешить его:
есть массив

type
 TOTPR = packed record
    otpr_massiv: array of Byte;
 end;
 POTPR=^TOTPR;

и есть переменная
f: integer;
и вот нужно в это массив записать значение этой переменной
a: POTPR;
.............
a^.otpr_massiv[20]=f;

к сожалению он записывает туда только 1 байт, вы не подскажете как туда записать все 4 байта?


 
Zeqfreed ©   (2006-09-18 12:07) [1]

> к сожалению он записывает туда только 1 байт

Откуда такая уверенность? Память под массив-то выделяешь хоть?
А вообще, зачем такие извращения?


 
Eraser ©   (2006-09-18 12:07) [2]

> [0] непонимающий   (18.09.06 12:04)


> TOTPR = packed record
>    otpr_massiv: array of Byte;

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


 
Palladin ©   (2006-09-18 12:12) [3]

ну вообще конструкция странноватая и безсмысленная...

размер записи у тебя равен 4 байтам, т.к. идентификатор optr_massiv - это указатель, соответственно packed не имеет никакого смысла, чем не устраивает просто объявление TOTPR=Array of Byte ?

это раз, два: конечно он будет записывать туда один байт, бо таков тип элемента массива, хочешь записать Integer целиком придется побайтно назначать либо использовать Move

a.
With LongRec(f) Do
Begin
 a[20]:=Bytes[0];
 a[21]:=Bytes[1];
 a[22]:=Bytes[2];
 a[23]:=Bytes[3];
End

b.
Move(f,a[20],4)


 
непонимающий   (2006-09-18 12:26) [4]


> Palladin

спасибо, сейчас поправлю и попробую...


 
Anatoly Podgoretsky ©   (2006-09-18 15:08) [5]

Do not apply the dereference operator (^) to a dynamic-array variable or pass it to the New or Dispose procedure.



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

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

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1158519090
ProgRAMmer Dimonych
2006-09-17 22:51
2006.10.08
Расскажите, как разместить свою веб-страницу в интернете, ...


2-1159092333
Серый
2006-09-24 14:05
2006.10.08
Операция div


15-1158126744
Ученик12
2006-09-13 09:52
2006.10.08
Ядро процессора


1-1156613300
Destroyer
2006-08-26 21:28
2006.10.08
Остановка потока


2-1158325089
misskio
2006-09-15 16:58
2006.10.08
формирование таблицы из выражения Execute