struct Node {
int data; // The data being stored at the node
Node *next; // Pointer to the next node
};
int main()
{
Node **nodeArray = new (Node*)[5];
}
第一个问题:
main中的语句是否是一种有效的方法来创建一个包含5个节点的数组?
main和Node **nodeArray = new Node*[5];
中的语句有什么区别? Main目前给我一个错误:在括号后的type-id |
第二个问题:
我如何通过阵列为每一个阵列做一个新的?我曾经使用过数组,而且我已经使用过链接列表了,但把它们放在一起看起来比我想象的要复杂。
答案 0 :(得分:3)
如果你知道你最多需要5个项目,你应该使用静态分配,因为它更快,你不必担心解除分配数组。
Node* array[SOME_CONST];
for (int i=0; i < SOME_CONST; i++)
{
array[i] = new Node()
cout<<array[i];
}
对于动态分配的数组几乎是一样的,你只需要实现指针new返回指向数组中第一项的内容。
Node** array = new Node*[some_num];
for (int i=0; i < some_num; i++)
{
array[i] = new Node();
}
不要忘记妥善解除分配:
for (int i=0; i < some_num; i++)
{
delete array[i];
}
delete[] array;
答案 1 :(得分:1)
是
只需循环播放5 Node*
,然后为每个new Node
分配一个{{1}}。或者,如果您正在尝试制作链接列表,可以将其中的每一个分配给5中的下一个。