动态大小的类指针数组

时间:2012-02-25 20:54:33

标签: c++ arrays class pointers dynamic

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

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

3 个答案:

答案 0 :(得分:5)

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

#include <iostreams>
#include <vector>

int main()
{
  unsigned int n;
  int q;

  if (!(std::cin >> n >> q)) { /* error! */ }

  std::vector<Tree> forest(n);

  // ...
}

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

答案 1 :(得分:0)

我猜你在询问C++

您的代码无效。

您无法在C或C ++中动态分配数组,从而在运行时推迟其大小的定义 您必须改为使用指针:

Tree *pointers =new Tree[n];

不要忘记delete [] pointers

答案 2 :(得分:0)

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

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

我希望这能解决问题:

    Tree *pointers;

    pointers = new Tree[n];