1

我有这个类和结构,并且数组上的每个结构都连接到另一个结构(数组的每个元素上的链表结构)..顺便说一句,这只是我的代码示例,假设没有其他错误..

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..从今天早上开始苦苦挣扎,找不到* *ing 解决方案:/数组的类型是“mystruct”但没有别的,这是一个问题吗?或者 array[i] 不是指针什么的?

4

2 回答 2

2

您有一个mystructs 数组,而不是指向 的指针数组mystruct。如果您真的想要一个指针数组,请像这样分配它:

mystruct** array = new mystruct*[10];
于 2012-10-29T23:48:02.057 回答
2

不,您不是在制作指针数组,而是在制作结构数组。的每个元素array都是 amystruct不是 a mystruct*mystruct将 a 设置为 null没有任何意义。

于 2012-10-29T23:48:36.417 回答