有了这个结构
typedef struct tNode_t {
struct tNode_t **a;
} tNode;
我希望能够a
指向一个指向 5 个指向 tNodes 的指针的数组
示例主要:
int main()
{
tNode t;
tNode (*alpha)[5];
t.a = alpha;
}
为什么这不起作用?
这定义了一个指向 tNodes 数组的指针:
tNode (*alpha)[5];
这定义了一个指向 tNodes 的指针数组:
tNode *alpha[5];
在您的代码中alpha
,并且a
是指向非常不同的对象的指针。而且由于两者都是指针,正如您正确定义的那样,不会发生衰减。只有数组会衰减,所以alpha
不能简单地衰减到另一种指针类型。
为什么它们如此不同?当您增加 a 时,它将指向下一个struct tNode_t *
。当您增加alpha
时,它将struct tNode *
进一步指向 5。