如何将pbyte指向的byte数据传递给byte数组或char等

frankis 2003-09-11 08:57:53
我试了一下,
虽然我知道我的pbyte变量gettext
gettext^的数据是$12345678比如,
但是我用
for i:= 0 to count-1 do
text[i]:= gettext^;
这种方法就说某地址访问错误。
for i:= 0 to count-1 do
用text[i]:=gettext[i]^
又说gettext不是数组。
如果用string变量strout去接收
strout:=gettext^;却是类型不匹配
或者用
strout:=gettext也是类型不匹配。

所以我想知道如何将pbyte指向的数据存到另一个byte数组中去,或者如何增加pbyte指向的地址。
...全文
472 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hiflower 2003-09-12
  • 打赏
  • 举报
回复
不可能啊,你看我下面这段程序,我甚至都没有给 p 分配空间,也没有出现访问错误。

procedure TForm1.Button1Click(Sender: TObject);
var
p:Pbyte;
b:array[0..10] of byte;
i:integer;
begin
for i:=0 to 10 do
begin
b[i]:=p^;
Inc(p);
end;
end;

贴出你的源码看看
Delphi_Li 2003-09-12
  • 打赏
  • 举报
回复
使用Move方法!!!

Move( P^, B[ 0 ], Size );
P是你的PByte指针
B是你的鼠族的第一个元素
Size是大小。

如果要赋值到Char数组中,要进行指针类型的转换
Var
Q : PChar;

Q := PChar( P );
Move( Q^, B[ 0 ], Size );
frankis 2003-09-12
  • 打赏
  • 举报
回复
还是不行,我用了这个方法做。出现访问异常,某个地址不能访问,我原先的一个数据,好比$353433332,变成地址取读了,所以发生读异常。不知该如何解决。等候回复
frankis 2003-09-12
  • 打赏
  • 举报
回复
谢谢回复哦,问题解决立刻给分
hiflower 2003-09-12
  • 打赏
  • 举报
回复
var
p:PByte;
b:array[0..10] of Byte;
for i:=0 to 10 do
begin
b[i]:=P^;
Inc(P);//可能是 Inc(PChar(p));
end;

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧