你手上现在只有一个STRING, 或者其他数组类型,比如Array of char. array of integer..一般的过程就是,首先把你手上的数组类型转换成符合A调用的需要的类型TBYTES,,其实很多时候我们需要要这个TBYTES纯粹是为了得到一个A函数运行的结果,BYTES其实并没有什么用,只是一个中间数据。但是有没有想过,转换的过程其实需要内存开销的,内存要分配,数据要复制,最后销毁。能不能把不同类型的数组共享在一块内存上。比如STRING,既可以当TBYTES用,也可以当 比如ARRAY OF INTEGER. 答案是肯定的。
玩法基础分析:一个动态数组的三要素,内存首地址,长度,元素大小。
内存首地址:简单,内存地址是可以相互贴的(贴就是指针共同指向一个地方)。直接赋值就行。
var Abytes:Tbytes; aIntegers: array of integer;
贴: Abytes:=Pointer(aIntegers);
元素大小:简单, SIZEOF(BYTE),sizeof(ineteger);
剩下就是长度在哪里?
长度: