【发布时间】:2018-11-28 16:43:42
【问题描述】:
在我的程序中,我必须创建包含其他结构数组(即列表)的结构。
struct ListEl {
string text;
ListEl *next;
};
struct hashTable {
int size;
ListEl *tab;
};
主要我必须清空“标签”的所有元素,但我无法这样做:
hashTable *hashingTable;
hashingTable->size = 256;
hashingTable->tab = new ListEl[hashingTable->size];
for (int i = 0; i < 256; i++) {
hashingTable->tab[i] = NULL; //<--------------Cannot do that
}
在这个 for 循环中,我从编译器收到一个错误:no operator"=" 与这些操作参数不匹配,请键入操作数 "ListEl = int"。 我做错了什么?
同时我可以做到:
struct ListEl {
string text;
ListEl *next;
};
int main(){
ListEl *tab[256];
for (int i = 0; i < 256; i++) {
tab[i] = NULL;
}
}
有什么不同?
【问题讨论】:
-
为什么不使用 memset 将所有值设置为零。看看我的回答。使用将 NULL 分配给不允许的结构。您只能对指针进行 NULL 赋值。
-
谢谢!那么我将如何使用 NULL 来做到这一点?
标签: c++ data-structures struct