指向类的指针的动态大小数组

Dynamic sized array of pointers to class

本文关键字:小数 数组 动态 指针      更新时间:2023-10-16

这些是数组限制:数组具有自定义大小,我将在程序顶部读取,这将是指向我自己的类Tree的指针数组,数组需要对每个单元格恒定的读取时间。

这是我的代码,不起作用: scanf("%d %d",&n,&q);
Tree *pointers = new Tree[n];
pointers[0]->value = NULL;

永远不要使用scanf。在C++中,使用动态容器和iostreams:

#include <iostreams>
#include <vector>
int main()
{
  unsigned int n;
  int q;
  if (!(std::cin >> n >> q)) { /* error! */ }
  std::vector<Tree> forest(n);
  // ...
}

根据您的设置,最好先逐行读取,然后处理每一行;搜索这个网站,因为这个已经被回答了一百次了。

如果声明了指针,语法:"*pointer"表示内存位置。"指针"表示指向内存位置的指针。

因此,Tree *pointers = new Tree[n]; new关键字返回一个指向无法分配的内存位置的指针。

我希望这能解决问题:

    Tree *pointers;
    pointers = new Tree[n];

我猜您在问C++

您的代码将不起作用。

您不能在C或C++中动态分配数组,在运行时推迟其大小的定义
您必须使用指针:

Tree *pointers =new Tree[n];

不要忘记delete [] pointers