指向节点指针数组的指针

时间:2012-12-02 20:24:34

标签: c pointers struct nodes

使用此结构

typedef struct tNode_t {
    struct tNode_t **a;
} tNode;

我希望能够a指向数组,指向tNodes的5个指针

示例主要:

int main()
{
    tNode t;
    tNode (*alpha)[5];
    t.a = alpha;
}

为什么这不起作用?

2 个答案:

答案 0 :(得分:4)

这定义了一个指向tNodes数组的指针:

tNode (*alpha)[5];

这定义了一个指向tNode的指针数组:

tNode *alpha[5];

答案 1 :(得分:0)

在代码中alphaa是指向非常不同的对象的指针。既然两者都是指针,正如你正确定义的那样,不会发生腐烂。只有数组衰减,因此alpha不能简单地衰减为另一种指针类型。

为什么他们如此不同?当您增加a时,它将指向下一个struct tNode_t *。当您递增alpha时,它会进一步指向struct tNode *