生成一缓冲区(20分)

牛龙

Unregistered / Unconfirmed
GUEST, unregistred user!
我要生成一个缓冲区,该缓冲区名为buffer,共10字节长;
buffer[0..5]为integer;
buffer[6..10]为char;
我如何声明该buffer?
谢谢
 
干脆开两块算了! :)
 
很奇怪,integer和char所占用的字节是不一样的,如何说是10字节长?如果是int16,
那该是15字节长.你可直接申明一个pchar的指针,再给它分配一个内存块,之后
直接取得该buffer的指针,再在需要的地方做一下强制转换.
 
<buffer[0..5]为integer;
<buffer[6..10]为char;
6个字节怎么能为integer呢?如果是4字节或许可以用记录类型:
type
TMyBuffer = record
int1, int2: smallint;
chars: array[0..5] of char;
end;
或者
TMyBuffer = record
intbuf: longint;
chars: array[0..5] of char;
end;
var buffer: TMyBuffer;
 
PMyBuffer = ^TMybuffer;
TMyBuffer = packed record
intbuf: array[0..5] of integer;
charbuf: array[6..10] of char;
end;

这时, (PMybuffer+24)^就是 TMyBuffer.charbuf[6]
:))))
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
739
DelphiTeacher的专栏
D
D
回复
0
查看
682
DelphiTeacher的专栏
D
D
回复
0
查看
631
DelphiTeacher的专栏
D
顶部