我有这个类和结构,并且数组上的每个结构都连接到另一个结构(数组的每个元素上的链表结构)。 顺便说一下,这只是我的代码示例,假设没有其他错误..
class DATA;
class myclass
{
public:
myclass();
mystruct* addDATA(DATA *d);
private:
mystruct* array;
};
struct mystruct
{
DATA * data;
mystruct * next ;
};
在构造函数中我正在尝试这个
mystruct::mystruct()
{
mystruct* array = new mystruct[10];
for(int i = 0; i < 10; i++)
array[i] = NULL;
}
这给了一个意外的(至少对我来说)错误,这个错误有点荒谬,我指的是指向NULL。
no match for ‘operator=’ in ‘*(array + ((unsigned int)(((unsigned int)i) * 8u))) = 0’
当我尝试时也是如此;
while(this->array[i] != NULL){
// do some arrangements on the array..
}
这也给出了相同的错误..为什么匹配指向NULL的指针会给出这个错误,或者检查它是否为NULL。从今天早上开始,无法找到 * *解决方案:/ 数组的类型是“mystruct”,但没有别的,这是一个问题吗?或者array [i]不是指针或什么?
答案 0 :(得分:2)
你有一个mystruct
的数组,而不是mystruct
的指针数组。如果你真的想要一个指针数组,请按如下方式分配:
mystruct** array = new mystruct*[10];
答案 1 :(得分:2)
不,你没有制作一个指针数组,你是一个结构数组。 array
的每个元素都是mystruct
而不是mystruct*
。将mystruct
设置为null是没有任何意义的。