数组错误(不允许类型不完整)

Array Error (Incomplete type is not allowed)

本文关键字:类型 错误 不允许 数组      更新时间:2023-10-16

我有此行错误:

int arr[];

错误:不允许使用不完整的类型。

主要:

int i = 0;
int arr[];
AddToArray(node, arr, i);

函数添加数组:

int AddToArray(Node *node, int arr[], int i){
if (node == NULL)
return i;
arr[i] = maxRes(score);
i++;
return i;
}

我需要更改什么才能调用 AddToArray 函数将新元素(二叉搜索树中的值(添加到数组中?数组的大小是 BST 中的节点数。我该如何解决这个问题?

以下是需要更改的内容:

std::vector<int> arr;
AddToArray(node, arr);
void AddToArray(Node *node, std::vector<int>& arr) {
if (node == NULL)
return;
arr.push_back(maxRes(score)); // what score?
}

您必须为静态数组声明特定大小。如果不希望指定大小,请将数组设置为动态或使用向量。

看到您正在使用节点并且函数正在添加到数组中,我建议您使用某个常量最大值初始化数组。

如果您希望继续使用静态,这是您应该做的。

例如:

const int MAX = 30;
int arr[MAX];

这应该有效。