|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблема с указателем
Добрый вечер.
Ситуация: Код:
type PMytype:^Mytype; Mytype: record data: array [1..64000] of byte; end; .................................................. procedure test; var stroka:string; begin stroka:='1111'; func(@stroka) .................................................. end; function func(buf:PMytype); var st:string; i:integer; begin st:=''; for i to 50 do st:=st+chr(buf^.Data); .................................................. end; Орды байтов строки @stroka не передаются в массив ... Последний раз редактировалось Admin, 10.04.2013 в 19:05. |
#2
|
||||
|
||||
первые 4 байта в массиве определяет количество элементов, вторые - адрес первой ячейки массива. вроде так.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
И ещё желательно функции местами поменять, а то из test не видно func
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
|||
|
|||
Цитата:
Код:
type PMytype=^Mytype; Mytype= record data: array [0..64000] of byte; end; function func(buf:PMytype):Boolean;forward; procedure test; var stroka:string; begin stroka:='1111'; func(Pointer(stroka)) end; function func(buf:PMytype):Boolean; var st:string; i:integer; begin st:=''; for i :=0 to 50 do begin if buf.Data[i]=0 then break; st:=st+chr(buf.Data[i]); end; end; |