1

有了这个结构

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

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

示例主要:

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

为什么这不起作用?

4

2 回答 2

4

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

tNode (*alpha)[5];

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

tNode *alpha[5];
于 2012-12-02T20:30:50.873 回答
0

在您的代码中alpha,并且a是指向非常不同的对象的指针。而且由于两者都是指针,正如您正确定义的那样,不会发生衰减。只有数组会衰减,所以alpha不能简单地衰减到另一种指针类型。

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

于 2012-12-02T20:29:10.757 回答