【问题标题】:Accessing structure elements via double pointers in C通过 C 中的双指针访问结构元素
【发布时间】:2014-02-19 07:25:43
【问题描述】:

我正在使用结构实现链表。我有一个结构-

typedef struct llist node;
typedef node *nodeptr;
struct llist
{
    int data;
    nodeptr next;
};

现在假设我声明了一个变量nodeptr *ptr;。如何使用ptr 访问成员datanext

【问题讨论】:

    标签: c pointers linked-list singly-linked-list double-pointer


    【解决方案1】:

    你尊重第一个指针,然后是第二个。

    在结构语句中访问数据和next会这样

    (*ptr)->data = 5;
    (*ptr)->next = temp;
    

    因为-> 的优先级高于*,所以需要用括号括住ptr。

    -> 等价于写成 *.(例如,ptr->data*ptr.data 相同)。

    【讨论】:

    • 所以说我想为ptr分配一些内存,(*ptr)=(nodeptr *)malloc(sizeof(nodeptr))正确吗?
    • 你可以尝试,但由于 ptr 将指向随机地址,你可能会遇到分段错误,所以应该先创建一个指向结构的指针,然后将其地址分配给 ptr。
    猜你喜欢
    • 2013-05-26
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    相关资源
    最近更新 更多