当前位置:  开发笔记 > 编程语言 > 正文

如何在Delphi中为指向数组的指针保留内存?

如何解决《如何在Delphi中为指向数组的指针保留内存?》经验,为你挑选了1个好方法。

我正在开发类来表示特殊类型的矩阵:

type
  DifRecord = record
    Field: String;
    Number: Byte;
    Value: smallint;
  end;

type
  TData = array of array of MainModule.DataRecord;

type
  TDifference = array of DifRecord;

type
  TFogelMatrix = class
  private
    M: Byte;
    N: Byte;
    Data: ^TData;
    DifVector: ^TDifference;
    procedure init(); 
  public
    constructor Create(Rows, Cols: Byte);
    destructor Destroy;
  end;

现在在构造函数中,我需要为Data和DifVector类成员保留内存.正如您所见,我使用指向记录数组的指针.所以,主要的问题是,我该如何正确保留记忆?我想我不能使用类似的东西: 因为我失去了主要想法 - 在运行时保留内存空间,就像我想要的那样.感谢您的评论.
new(Data);
new(DifVector);



1> angry person..:

由于您使用的是动态数组,array of因此应使用SetLength指定数组的长度,这可以动态完成.

即.像这样:

SetLength(Data, 100);

这不会保留100个字节,但会保留足够的空间来容纳数组所拥有的任何类型的100个元素.

将数组的声明更改为简单数组:

Data: TData;
DifVector: TDifference;

并使用它与SetLength,它应该做的伎俩.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有