W
wystrim
Unregistered / Unconfirmed
GUEST, unregistred user!
我有一程序,其中有部分功能保存保存数据,数据类型是一个含有动态数组的结构体。
type
TSeq=Record
Name:String[20];
Number:Integer;
Describe:String[20];
Value:array of real;
end;
程序中定义了全局变量:
seq1,seq2:Tseq;
通过seq1,将数据存为文件;而seq2则为读取文件中的数据时使用。
调试过程发现这样的问题:
1:用sizeof()得到seq1,seq2的长度不管在其有没有付值都不变,长度不等于46(21+4+21)
后发现在不同类型变量之间存在间隙,但不知道为什么??
2:在程序启动以后,若对seq1付值过,则用seq2读取数据时得到正确的数据(seq2中动态部
分未给定长度);若未对seq1付值,而直接用seq2读取文件中的数据(seq2中的动态数组即使
给定长度),读出的数据也是错误的,很是迷惑。程序上seq1和seq2没有任何联系。
那位大虾若能解决问题,给200分,谢谢了。
type
TSeq=Record
Name:String[20];
Number:Integer;
Describe:String[20];
Value:array of real;
end;
程序中定义了全局变量:
seq1,seq2:Tseq;
通过seq1,将数据存为文件;而seq2则为读取文件中的数据时使用。
调试过程发现这样的问题:
1:用sizeof()得到seq1,seq2的长度不管在其有没有付值都不变,长度不等于46(21+4+21)
后发现在不同类型变量之间存在间隙,但不知道为什么??
2:在程序启动以后,若对seq1付值过,则用seq2读取数据时得到正确的数据(seq2中动态部
分未给定长度);若未对seq1付值,而直接用seq2读取文件中的数据(seq2中的动态数组即使
给定长度),读出的数据也是错误的,很是迷惑。程序上seq1和seq2没有任何联系。
那位大虾若能解决问题,给200分,谢谢了。