arrays - 如何在 Delphi 中将 Byte 数组转换为 PByte?
问题描述
我正在使用 Delphi 5。我定义了一个字节数组,如下所示:
Buffer: Array of BYTE;
如何将其转换为 PByte 指针?
解决方案
有两种方法可以做到这一点:
var
P: PByte;
....
P := @Buffer[0]; // no cast, compiler can check type safety
P := PByte(Buffer); // implementation detail, dynamic array variable is pointer to first element
请注意,如果启用范围检查并且数组为空,则前者会导致范围错误。因此,我倾向于选择后者,尽管您可能会批评直接指针转换缺乏类型安全性。
推荐阅读
- c++ - 根据谓词插入不同容器的插入器迭代器
- python - 从导入的 .dat 文件生成的同一列表中的元素之间的操作
- javascript - Typescript for in 循环,遍历对象或数组的联合类型
- javascript - Google 应用程序脚本:在已部署的网络应用程序中查看 PDF
- javascript - 从输入中获取数据以发送到whatsapp
- swift - Swift:检查成功的 HTTP 状态码
- java - 仅从 editText 检测和更改“hello”文本 font-family
- php - 如何在 PHP 中包含用字符串标记的文件?
- java - 不完整的类型:
无法转换为组件 - flutter - Flutter:未处理的异常:“String”类型不是“bool”类型的子类型