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;