【发布时间】:2022-01-07 13:19:04
【问题描述】:
我是 C 初学者,我试图创建一个修改结构指针内容的函数,但它无法实现,而是内容保持不变。
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int age;
int code;
}person;
void enter(person *struct_pointer);
void main(void)
{
person *person_1 = NULL;
enter(person_1);
printf("CODE: %i\n", person_1->code);
free(person_1);
}
void enter(person *struct_pointer)
{
struct_pointer = malloc(sizeof(*struct_pointer));
struct_pointer->age = 10;
struct_pointer->code = 5090;
}
在上面的示例中,当我打印 person_1 的代码时,它什么也不打印,所以我假设是因为 person_1 仍然指向 NULL。
有人可以解释一下我该怎么做,如果不能做到,为什么。
谢谢
【问题讨论】:
标签: c pointers struct pass-by-reference function-declaration