gpt4 book ai didi

C 在函数中传递指针到指针

转载 作者:行者123 更新时间:2023-11-30 21:09:16 25 4
gpt4 key购买 nike

我正在阅读有关指针到指针的内容,现在我想我知道的比以前少了。需要传递双指针来更改该指针的值。但是,如果我们有一个指向某个结构的指针,并且我们想要更改其某些成员(字段)的值,那么我们必须传递一个简单的指针。前面的说法正确吗?

例如:

struct A* a;
void func(struct A* arg)
{
arg->mem1 = 5;
}

struct *A a;
void func(struct A** arg)
{
*arg = malloc(struct A);
(*arg)->mem1 = 5;
return;
}

我希望上面的例子能够清楚地说明问题。

最佳答案

是的,你说得对。您只需传递一个指向结构体的指针即可更改结构体变量内的字段。这是因为您没有更改地址,而是更改了指针指向的结构 var 中存储的值。

如果您需要分配内存或更改指针指向的地址,并且需要在调用函数中反射(reflect)出来,那么您的第二个函数就可以了。

关于C 在函数中传递指针到指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35103931/

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