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;
这样做老是提示内存某个地址访问冲突,请问应该如何初始化这个结构,特别是如何对这个结构中的二维字符数组进行初始化啊,急!

解决方案 »

  1.   

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

  2.   

    To:chinaandys
    这样是不行的,类型不匹配!EachRecord[i,j]是字符型的,而后面的赋的值是字符串型的。
      

  3.   

    With CardInfo do
    begin
     VerNo:='';
     CardID:='';
     for i:=0 to 336 do
         for j:=0 to 23 do
       EachRecord[i,j]:=#0;//或者为#32,空串
    end;
      

  4.   

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

  5.   

    楼主,你这段代码不错呀,我运行了一下,没有出错。With CardInfo do
    begin
     VerNo:='';
     CardID:='';
     for i:=0 to 336 do
       EachRecord[i]:='';
    end;
      

  6.   

    是这样的,这段代码我有好几个地方在用,有的地方不出错,有的地方有时出错有时不出错,出错一般都提示"Access violation of 0012ffa0,write of 00012ffa0",当然这个地址码不是固定这个,也有其他的如00000000或者别的,去掉for 循环就不出错,我想可能是由于给字符数组赋值是没有加上结束字符而造成非法访问别的地址的缘故,所以请教大家该如何给这个二维数组赋值。