【问题标题】:request for member ... in something not a structure or union|请求成员......不是结构或联合|
【发布时间】:2013-11-03 19:08:45
【问题描述】:
int main(int argc, char* argv[])
 {
    struct square k;
    k=makesquare(7,7);
    insquare(&k,10);
    return 0;
}

//makesquare makes dinamic 2D array

 void insquare(struct square *p, unsigned char value) {
    int i,j;
    for(i = 0; i < p.height; i++)
    {
        //do something
    }
}

我是 C 和指针的初学者。根据“p.height”我有错误: 请求非结构或联合中的成员“身高”

请帮忙。

【问题讨论】:

  • p 是一个指向结构的指针,所以你需要使用不同的语法:for(i = 0; i height; i++)
  • 这在每本介绍性 C 教科书中都有介绍。
  • 谢谢,JIghtuse。它有效:)
  • @JIghtuse 把它放在一个答案中。

标签: c


【解决方案1】:

[复制自评论]

p 是一个指向结构体的指针,所以你需要使用不同的语法:

for(i = 0; i < p->height; i++)

请阅读一些关于 C 的书。

【讨论】:

  • 澄清一下,“p->x”操作符等价于“(*p).x”。因此,它允许您同时取消引用指向结构的指针,然后选择该结构的元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多