使用此结构
typedef struct tNode_t {
struct tNode_t **a;
} tNode;
我希望能够a
指向数组,指向tNodes的5个指针
示例主要:
int main()
{
tNode t;
tNode (*alpha)[5];
t.a = alpha;
}
为什么这不起作用?
答案 0 :(得分:4)
这定义了一个指向tNodes数组的指针:
tNode (*alpha)[5];
这定义了一个指向tNode的指针数组:
tNode *alpha[5];
答案 1 :(得分:0)
在代码中alpha
和a
是指向非常不同的对象的指针。既然两者都是指针,正如你正确定义的那样,不会发生腐烂。只有数组衰减,因此alpha
不能简单地衰减为另一种指针类型。
为什么他们如此不同?当您增加a时,它将指向下一个struct tNode_t *
。当您递增alpha
时,它会进一步指向struct tNode *
。