c++ - 使用 Null C++ 初始化结构数组

标签 c++ hash struct

<分区>

我正在尝试使用链表数组实现单独的链接。首先我初始化了结构数组,它最终由 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 循环。

关于c++ - 使用 Null C++ 初始化结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939894/

相关文章:

c++在将变量传递给函数时声明变量

C++/Qt - QGraphicsItem 的多重继承没有按预期工作

c - 结构实际上是如何用 C 编程语言实现的?

image-processing - 指纹图像比较

具有默认值的 c 结构?

arrays - 在 Golang 中添加 2 个数组 `type` s

c++ - 当我的 C++ 代码某处发生运行时错误时如何打印某些内容?

c++ - OpenCV 从中心 x,y 绘制矩形

按哈希搜索?

algorithm - 如何有效地散列 ip 地址