我定义一个数组 arr 是array of string 。一开始设置长度为5,并都赋值为'1',我现在想实现的是改变数组长度并重新赋值,但是以前的数据一直仍然存在,去不掉了。我写的是 setlength(arr,0) 使数组长度为0,再重新设置长度赋值。但是结果数组的长度并没有变为我后来设置的,而是把原来的长度加上了重新设置的长度。比如说我原来的长度是5,后来设置为3,结果长度为8,而且后面的5位就是原来的值。实际上setlength(arr,0)根本没有起作用,只是加到后面了。
应该怎么清空原有数组中的数据啊?急啊!!!

解决方案 »

  1.   

    void ZeroMemory(
      PVOID Destination,
      SIZE_T Length
    );
      

  2.   

    ZeroMemory 如上
    fillchar(arr,sizeof(arr),$00);
      

  3.   

    “比如说我原来的长度是5,后来设置为3,结果长度为8,而且后面的5位就是原来的值。”
    什么意思?
    是length(arr) = 8 还是 length(arr) = 3只是你索引后5项(或调试)发现原值还在后5位?
    如果是后者,对你的程序应该没什么影响啊