delphi中如何对一段pchar空间转换成整型值。
delphi中定义了一个pchar指针,分配了一段内存空间。读进内容后,想读出这段内存空间以32位数为单位的整型。大致如下,错误在哪?如何改一下P:pchar;//申请内...
delphi中定义了一个pchar指针,分配了一段内存空间。读进内容后,想读出这段内存空间以32位数为单位的整型。
大致如下,错误在哪?如何改一下
P:pchar;
//申请内存及赋值
pint: PInteger;
pint := Pinteger(P+i);//i为循环变量 展开
大致如下,错误在哪?如何改一下
P:pchar;
//申请内存及赋值
pint: PInteger;
pint := Pinteger(P+i);//i为循环变量 展开
展开全部
delphi 2009以上,PChar指向的是UnicodeChar,大小是2个字节,不再是1个字节,为了保证各个版本的编译效果相同,不应认定Char占1个字节。对于你的问题,可以把PChar的处置赋予Pint后,直接对PInt递增1达到,万全的写法如下:
i : Integer;
P : PChar;
pint : PInteger;
......
pint := PInteger( P );
// 下面的循环终值如在申请内存时得到了,就用它,如果数据长度未定,则用下面的公式计算,但要求数据尾部得有#0
for i := 1 to Length( string( P ) ) * SizeOf( Char ) div 4 do
begin
// 处理pint^,即一个32位整数
......
Inc( pint );
end;
i : Integer;
P : PChar;
pint : PInteger;
......
pint := PInteger( P );
// 下面的循环终值如在申请内存时得到了,就用它,如果数据长度未定,则用下面的公式计算,但要求数据尾部得有#0
for i := 1 to Length( string( P ) ) * SizeOf( Char ) div 4 do
begin
// 处理pint^,即一个32位整数
......
Inc( pint );
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询