声明嵌套struct的指针

时间:2016-02-09 05:47:19

标签: c++ pointers struct

我是c ++的新手,我遇到过嵌套struct的一些问题。 例如:我有这样的结构:我想声明这个结构的指针。

struct person{
     int year;
     char name[20];
     bool available;
};

struct data{
      int list;
      person number;
};

int main(){
    data *ptr;
    data notptr[3];
    ptr = &notptr;
}  

然后我编译它并收到这样的消息:

cannot covert 'data(*)[3]' to 'data' in assignment 
ptr = &notptr;
    ^

请帮助我。我用了一个小时来搞清楚但仍然不知道为什么......

非常感谢。

对于这个程序,我试图用指针将文件读入struct。

1 个答案:

答案 0 :(得分:1)

您无法执行ptr = &notptr之类的分配,因为&notptr是指向3个对象的指针,而ptr是指向单个对象的指针。

你只能这样做ptr = &notptr[index];