首页 > 解决方案 > 如何在 Delphi 中将 Byte 数组转换为 PByte?

问题描述

我正在使用 Delphi 5。我定义了一个字节数组,如下所示:

Buffer: Array of BYTE;

如何将其转换为 PByte 指针?

标签: arraysdelphipointersdelphi-5

解决方案


有两种方法可以做到这一点:

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

请注意,如果启用范围检查并且数组为空,则前者会导致范围错误。因此,我倾向于选择后者,尽管您可能会批评直接指针转换缺乏类型安全性。


推荐阅读