嘿伙计们,我很难理解如何让指针指向结构中的另一个指针,从而指向结构中的另一个指针。不确定这是否有意义。
基本上,通常我会写一些类似的东西:
test->first = NULL;
但我也需要首先访问部分内容。我在尝试:
test->first->alpha = NULL;
但这不起作用。关于如何通过声明测试来访问alpha的任何想法?从而将test-> first-> alpha设置为NULL?
谢谢你们!
答案 0 :(得分:1)
除非您指定有效指针test->first
,否则无法访问test->first->alpha
。如果你做了,你取消引用一个无效的指针,这会导致未定义的行为,并可能崩溃。
答案 1 :(得分:1)
如果你问如何声明这样的结构,这是一个例子:
struct First {
int alpha;
};
struct Test {
struct First* first;
};
正如其他人所指出的那样,在尝试取消引用它之前,你必须先确定test->第一点,如下所示:
struct Test* test = malloc(sizeof(struct Test));
test->first = malloc(sizeof(struct First));
test->first->alpha = 123;
答案 2 :(得分:0)
如果first
自我指向NULL
,则访问alpha
会导致未定义的行为。
确保first
指向有效的记忆位置,然后您可以指定其成员。