gpt4 book ai didi

C 指向结构的双指针

转载 作者:太空狗 更新时间:2023-10-29 16:25:15 25 4
gpt4 key购买 nike

我正在尝试在 C 中计算出一个指向结构的双指针,但无法弄清楚出了什么问题......简单的源代码如下:

typedef struct
{
int member;
} mystruct;

void myfunc(mystruct **data)
{
(*data)->member = 1;
}

void main(int argc, char *argv[])
{
mystruct **data;

myfunc(data);

printf("member = %d\n", (*data)->member);
}

此处提出了类似的问题:How to work with pointer to pointer to structure in C?关于如何通过双指针修改结构的成员。解决方案是语法 (*data)->member = 1; 这很有意义。但是在我这里的小应用程序中,我在执行该行时收到段错误。我究竟做错了什么?

谢谢

最佳答案

如果要取消引用指针,则需要指向某物。试试这个:

void main(int argc, char *argv)
{
mystruct actualThing;
mystruct *pointer = &actualThing;
mystruct **data = &pointer;
myfunc(data);

printf("Member: %d", (*data)->member);
}

关于C 指向结构的双指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7638612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com