Delphi中如何将数组转换为指针?

Delphi中如何将数组转换为指针?,第1张

我觉得你应该先搞清楚WriteBuffer写入的时候是按照多少字节写入的,也就是说是1字节、2字节还是其它。

一般如果仅仅是内存区域的话,我觉得按1字节的可能性最大,这样就存在问题了,你定义的是bufBit: Array of IntegerInteger在Delphi中是4字节的,你要是转化的话建议转化为Byte指针比较好:

var

BP: PByte

begin

BP:= PBYTE(@BufBit[0])

//处理部分

end

呵呵,未验证,仅供参考

另外,一楼所说很有道理!

1、看你WriteBuffer的写法似乎是为了和C语法兼容,未指定长度的话可能会以 0 作为结束符,需要注意。

2、或者里面隐含处理的长度,这样的写法不安全,可能会造成未知的错误,或让程序崩溃!

动态数组变量本身,实际上就是一个指针了,不需要再专门去定义一个指向动态数组的指针。

比如:

A, B: array of Integer

begin

SetLength(A, 1)

A[0] := 1

B := A

end

动态数组变量B,它指向动态数组A的内容,即B[0] =A[0] = 1修改B[0],A[0]的值也变了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/52536.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-25
下一篇2023-02-25

发表评论

登录后才能评论

评论列表(0条)

    保存