我需要给大量的数组(每个数组很短)分配内存,有没有像针对字符串的newstr函数类似的针对数组的函数,如有该怎样使用呢?

解决方案 »

  1.   

    SetLength(var S; NewLength: Integer);
    setlength(array1,1);
    注意最好zeromemory(@array1,sizeof(array1))初始化。
      

  2.   

    var
      test:array of byte;
    const
      len=64;get memory
    setlength(test,64);//---free memory
    test:=nil;
      

  3.   

    dinglinger(红辣椒) 
    //---free memory
    test:=nil;
    ======================================================================
    这样就可以释放数组占用的空间了吗?还是仅仅释放了指向数组的指针test的空间啊?
    记得在很久以前,是这么写的
    setlength(test,0);
    test:= nil;
      

  4.   

    不好意思再追问一个问题,那怎么给结构体(记录)像这样分配内存呢,两个结构体或者两个数组怎样比较是否一样呢,是要用Record1.Item=Record2.Item这样的格式么?
      

  5.   

    还是不行呀,我定义了一个全局的记录,如下
      PIPChn = ^IPChn;
      IPChn = packed record
        IPItem   : IP;
        PortItem : word;
        Next     : PIPChn;
    然后希望用它做个链表,我用一个PIPChn型的指针每次为新的节点分配IPItem和PortItem的内存,但所有的操作总是对着一个内存单元的,怎样才能每次都让指针指向我新分配的单元操作呢?谢谢!