c - 为什么我不能通过它的指针访问这个结构?

标签 c pointers struct operators malloc

#include <stdio.h>
#include <stdlib.h>

typedef int element;

struct cell {
    element e;
    struct cell *p;
};
typedef struct cell* CELL;

int main() {
    CELL* p;
    p = (CELL*) malloc (sizeof(struct cell));
    p->e = 8;       /* This ain't working */
    *p.e = 8;       /* This doesn't help anything either */

    return 0;
}

我刚刚开始使用 malloc,我只是指向一个新创建的 CELL,它是一个 struct。现在我试图用一些值填充它,但我遇到了一个不友好的“成员 e 请求”,它不是结构或 union 。我确实做了一个指向 struct 的指针包含一个名为 e 的成员,或者至少我认为我是这样做的。为什么会失败?

最佳答案

我认为这很好地说明了良好 C 风格的规则 - 不要创建隐藏某些东西是指针这一事实的 typedef。

关于c - 为什么我不能通过它的指针访问这个结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2184626/

相关文章:

c - 刷新容器中的子项 - GTK

go - 为什么我对数组中嵌套结构的更改会在进行更改的函数之外丢失?

pointers - Go 似乎没有像我想的那样传递指针

c++ - 类和结构数据放置 C/C++

c - 使用 strncopy 显示输出

c - 如何在 C 中打印到标准输出和文件

c - 这个 makefile 示例正确吗?

c++ - 使用bool函数在c++中进行递归二进制搜索

c++ - 使用 pop_back 时防止指针失效

c - 通过传递内存地址使用指针扫描值