用null C 初始化结构阵列



我正在尝试使用链接列表的数组来实现单独的链接。首先,我初始化的结构数组,最终由10个头节点组成,最初没有什么,而不是0,没有在节点中没有。

我认为这会起作用:

void Hash::sepChain(int key){
    int i;
    //initialize array with Null
    myNode a[10];
    for(i=0; i<10; i++){
        a[i] = NULL;
    }
    myNode->item = key;
    myNode->next = a[key%tableSize];
    a[key%tableSize] = myNode;
}

但是我遇到了这个错误。

hash.cpp:176:10: error: no viable overloaded '='
a[i] = NULL;
~~~~ ^ ~~~~
./hash.hpp:30:8: note: candidate function (the implicit copy assignment operator)
  not viable: no known conversion from 'long' to 'const myNode' for 1st
  argument
struct myNode{
   ^

这就是我在.hpp中写结构的方式

struct myNode{
    int item;// the value that goes into the node
    myNode *next;
};

为什么我会遇到此错误?如何解决?谢谢。

a[i] = NULL;

不正确,因为该操作的LHS是myNode类型的对象。这不是myNode的指针。

您可以使用:

a[i] = myNode{};

您也可以使用:

myNode a[10] = {};

摆脱for循环。

您无法将不指指针的空变量设置为null变量。如果您想将a的元素化为null,则必须将其声明为

    myNode *a[10]

最新更新