var
  intValue: Integer;
  buf: PChar
begin
  ..
  GetMem(buf, 2);
  ..
  Move(buf^, intValue, 2);  //这里对不对,有没有问题
end;
请问题Move(buf^, intValue, 2);合法吗,会不会出现内存错误,请高手指教

解决方案 »

  1.   

    乱七八糟的
    buf无内容,怎么可以覆给intValue,而且一个Integer要四个byte
      

  2.   

    buf内容没有显示,我说的是这种合不合法,会不会出现内存异常
      

  3.   

    这样操作是可以的.
    你这样做的结果是把BUFF中的两个字节的内容放入了低端的二个字节中,高端的两个字节的值为0(如果你没有初始化,就不定了,初始化:INTVALUE:=0;)
    Move(buf^, intValue, 4);//这是最大的字节COPY数量了.
    事实上,MOVE函数是按字节进行字节COPY,一个INTEGER变量是四字节的空间可以使用的.