如题,或者怎么让一个word数组做为参数传递给一个byte数组为形参的函数也行,能实现么?
天真得认为不管是word数组还是byte数组都是内存中一个连续快,应该有办法对这内存块任意方式来访问...

解决方案 »

  1.   

    uses
      Types;function ByteListToWordList(const AList: TByteDynArray): TWordDynArray;
    begin
      SetLength(Result, Length(AList) div 2);
      MoveMemory(Result, AList, SizeOf(Byte) * Length(AList));
    end;function WordListToByteList(const AList: TWordDynArray): TByteDynArray;
    begin
      SetLength(Result, 2 * Length(AList));
      MoveMemory(Result, AList, SizeOf(Word) * Length(AList));
    end;
      

  2.   

    fixup:
    function ByteListToWordList(const AList: TByteDynArray): TWordDynArray;
    var
      FLen, FPlus: Word;
    begin
      DivMod(Length(AList), 2, FLen, FPlus);
      SetLength(Result, IfThen(FPlus = 0, FLen, FLen + 1));
      MoveMemory(Result, AList, SizeOf(Byte) * Length(AList));
    end;
      

  3.   

    1个word=2个byte
    byte数组的长度应该是word数组的长度的2倍才不致于丢数据