定义一个结构,
s= packed record
a:integer;
b:string;
c:real;
.
.
.
end;
结构的大小为90个字节
我要进行的操作是:把这个结构放到内存中去,然后对它进行读或者写,
问题:1:怎么申请内存块?
2:我读取或写其中的任意一个值,怎么定位?
3:我要把结构按照每16个字节或32个字节来划分,放到另外一个内存块中(这个块是以16或32个字节为单位的)?
4:我在操作时候最应该注意那些问题?
5:还有,我每次操作时,必须把另一个内存(就是上面提到的以16或32个字节为单位的那个块)中的有关这个完整的结构的数据都读出来,组合成一个完整的结构,然后对结构中的数据进行修改,在写入到另外的那个内块(就是上面提到的以16或32个字节为单位的那个块)中去,该怎样实现?
再说一遍,分不够了,我再加!!!
s= packed record
a:integer;
b:string;
c:real;
.
.
.
end;
结构的大小为90个字节
我要进行的操作是:把这个结构放到内存中去,然后对它进行读或者写,
问题:1:怎么申请内存块?
2:我读取或写其中的任意一个值,怎么定位?
3:我要把结构按照每16个字节或32个字节来划分,放到另外一个内存块中(这个块是以16或32个字节为单位的)?
4:我在操作时候最应该注意那些问题?
5:还有,我每次操作时,必须把另一个内存(就是上面提到的以16或32个字节为单位的那个块)中的有关这个完整的结构的数据都读出来,组合成一个完整的结构,然后对结构中的数据进行修改,在写入到另外的那个内块(就是上面提到的以16或32个字节为单位的那个块)中去,该怎样实现?
再说一遍,分不够了,我再加!!!
a:integer;
b:string[255]; //修改這行
c:real;
.
.
.
end;
PS = ^Ts;var s1: Ts; //已分配內存, 直接操作就可
ps1: Ps;
begin
new(ps1);
ps1^.a := 10;
我要进行的操作是:把这个结构放到内存中去,然后对它进行读或者写,
问题:1:怎么申请内存块?
New() 2:我读取或写其中的任意一个值,怎么定位?
你结构不是定义了吗?Delphi会帮你干,不用你管ps1^.a := 10;就定位了。
3:我要把结构按照每16个字节或32个字节来划分,放到另外一个内存块中(这个块是以16或32个字节为单位的)?
那只能说你前面定义的90字节的结构不合理,否则你为什么要这么干?重新定义你的结构。 4:我在操作时候最应该注意那些问题?
没有什么要注意的问题,这是最基本的操作。 5:还有,我每次操作时,必须把另一个内存(就是上面提到的以16或32个字节为单位的那个块)中的有关这个完整的结构的数据都读出来,组合成一个完整的结构,然后对结构中的数据进行修改,在写入到另外的那个内块(就是上面提到的以16或32个字节为单位的那个块)中去,该怎样实现?
不知道你在说什么。 送你一句:简单就是美,不要把问题想得太复杂。
5:还有,我每次操作时,必须把另一个内存(就是上面提到的以16或32个字节为单位的那个块)中的有关这个完整的结构的数据都读出来,组合成一个完整的结构,然后对结构中的数据进行修改,在写入到另外的那个内块(就是上面提到的以16或32个字节为单位的那个块)中去,该怎样实现?你可以使用Tlist对所有分配的内存的结构进行记录 这样然后在释放的时候对每个 TList中的指针进行释放就可以了.