这些是数组约束:数组有自定义大小,我将在程序顶部读取,这将是指向我自己的类Tree的指针数组,数组需要每个单元格的常量读取时间。
这是我的代码不起作用:
scanf("%d %d",&n,&q);
Tree *pointers = new Tree[n];
pointers[0]->value = NULL;
答案 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];