gpt4 book ai didi

c - 如何使用指针参数调用 void 函数?

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

我不明白如何在 main 中正确调用此函数。
我尝试像这样调用: X *p1=malloc(sizeof(X));read(&p1);

struct x
{ int c;
char n[250];
char u[150];
};
typedef struct x X;

void myread(X *p);

void myread(X *p)
{
scanf("%d",&p->c);
fgets(p->n,sizeof(p->n),stdin);
fgets(p->u,sizeof(p->u),stdin);
}
void main(){
X *p1;
p1=malloc(sizeof(X));
myread(p1);
}

最佳答案

问题中声明的函数 (void read(X *p)) 需要一个指向 X 的指针作为参数。
您的 (X *p1) 声明可确保它是指向 X 的指针。
您的初始化 (p1=malloc(sizeof(X));) 使其成为指向大小合适的可用内存的指针。

就是这样。

然后,您可以将适当的指针与“获取地址运算符”& 结合使用,这会产生指向 X 的指针。

使用 p1 作为参数调用函数看起来像

read(p1);

即只需将指针按原样提供给 X 即可。

该函数看起来应该用值填充分配的空间。
它是如何工作的以及如何改进它不是你的问题的一部分。

关于c - 如何使用指针参数调用 void 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48942328/

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