结构数组似乎不想工作

时间:2012-10-29 23:43:32

标签: c++ arrays struct

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

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]不是指针或什么?

2 个答案:

答案 0 :(得分:2)

你有一个mystruct的数组,而不是mystruct的指针数组。如果你真的想要一个指针数组,请按如下方式分配:

mystruct** array = new mystruct*[10];

答案 1 :(得分:2)

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