C 指向结构中指针的指针?

C 指向结构中指针的指针?,c,pointers,struct,C,Pointers,Struct,嘿,伙计们,我很难理解如何让一个指针指向结构中的另一个指针,从而指向结构中的另一个指针。不确定这是否有意义 基本上,我通常会写这样的东西: test->first = NULL; 但我也需要访问first的一部分。我正在努力: test->first->alpha = NULL; 但这是行不通的。关于如何仅通过声明测试来访问alpha有什么想法吗?从而将test->first->alpha设置为NULL 谢谢大家 除非为test->first分配有效指针,否则无法访问tes

嘿,伙计们,我很难理解如何让一个指针指向结构中的另一个指针,从而指向结构中的另一个指针。不确定这是否有意义

基本上,我通常会写这样的东西:

test->first = NULL;
但我也需要访问first的一部分。我正在努力:

test->first->alpha = NULL;
但这是行不通的。关于如何仅通过声明测试来访问alpha有什么想法吗?从而将test->first->alpha设置为NULL


谢谢大家

除非为
test->first
分配有效指针,否则无法访问
test->first->alpha
。如果您仍然这样做,您将取消引用无效指针,这将导致未定义的行为,并可能导致崩溃。

如果
首先自身指向
NULL
,则访问其上的
alpha
将导致未定义的行为


确保
首先
指向有效的内存位置,然后您可以分配它的成员。

如果您询问如何像这样声明结构,下面是一个示例:

 struct First {
     int alpha;
 };
 struct Test {
     struct First* first;
 };
正如其他人所指出的,在尝试取消引用之前,必须确保test->first指向某个地方,如下所示:

struct Test* test = malloc(sizeof(struct Test));
test->first = malloc(sizeof(struct First));
test->first->alpha = 123;