二维字符数组初始化的问题,高手请进!急急急!!!!!!!!!!!!!!!!!

linchpin 2004-11-21 10:35:25
type TCardRecord = record
VerNo: array[0..1] of char;
CardID: array[0..17] of char;
EachRecord: array[0..336, 0..23] of char;
end;

var
CardInfo: TCardRecord;

请问改如何对CardInfo进行初始化?我现在的做法是:
With CardInfo do
begin
VerNo:='';
CardID:='';
for i:=0 to 336 do
EachRecord[i]:='';
end;
这样做老是提示内存某个地址访问冲突,请问应该如何初始化这个结构,特别是如何对这个结构中的二维字符数组进行初始化啊,急!


...全文
316 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengkun1509708831 2010-05-29
  • 打赏
  • 举报
回复
fsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
linchpin 2004-11-21
  • 打赏
  • 举报
回复
是这样的,这段代码我有好几个地方在用,有的地方不出错,有的地方有时出错有时不出错,出错一般都提示"Access violation of 0012ffa0,write of 00012ffa0",当然这个地址码不是固定这个,也有其他的如00000000或者别的,去掉for 循环就不出错,我想可能是由于给字符数组赋值是没有加上结束字符而造成非法访问别的地址的缘故,所以请教大家该如何给这个二维数组赋值。
twfldy 2004-11-21
  • 打赏
  • 举报
回复
楼主,你这段代码不错呀,我运行了一下,没有出错。

With CardInfo do
begin
VerNo:='';
CardID:='';
for i:=0 to 336 do
EachRecord[i]:='';
end;


metro 2004-11-21
  • 打赏
  • 举报
回复
With CardInfo do
begin
VerNo:='';
CardID:='';
for i:=0 to 336 do
for j:=0 to 23 do
EachRecord[i,j]:='a';
end;

ssq237712 2004-11-21
  • 打赏
  • 举报
回复
With CardInfo do
begin
VerNo:='';
CardID:='';
for i:=0 to 336 do
for j:=0 to 23 do
EachRecord[i,j]:=#0;//或者为#32,空串
end;

linchpin 2004-11-21
  • 打赏
  • 举报
回复
To:chinaandys
这样是不行的,类型不匹配!EachRecord[i,j]是字符型的,而后面的赋的值是字符串型的。
chinaandys 2004-11-21
  • 打赏
  • 举报
回复
With CardInfo do
begin
VerNo:='';
CardID:='';
for i:=0 to 336 do
for j:=0 to 23 do
EachRecord[i,j]:='';
end;
chinaandys 2004-11-21
  • 打赏
  • 举报
回复
楼主可以用 string、pchar

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧