#include <stdio.h>
typedef struct hello{
int id;
}hello;
void modify(hello *t);
int main(int argc, char const *argv[])
{
hello t1;
modify(&t1);
printf("%d\n", t1.id);
return 0;
}
void modify(hello *t)
{
t = (hello*)malloc(sizeof(hello));
t->id = 100;
}
为什么程序没有输出100
?是malloc
的问题吗?我不知道如何初始化结构体。
如何仅通过编辑modify
函数来获得期望的输出?
malloc
等函数的结果强制转换。t
,并立即通过malloc
覆盖它。那么,传递该值有什么用处呢?