【发布时间】:2021-01-19 00:04:25
【问题描述】:
typedef struct {
int age, height, weight;
} Person;
//this is in global variables
...
Person *p = (Person *)malloc(sizeof(int) * 20); //this is local variable in main function
在这种情况下,我想创建使用 typedef 变量作为参数的函数。
例如,
如果我创建一个像void print_line() 这样打印年龄、身高、体重的函数,我应该在() 中写什么?
一开始我写了void print_line(Person);,但是VS说这是一个错误。
请帮帮我。
【问题讨论】:
-
typedef定义了现有类型的“快捷方式”,它没有定义变量。Person是一种类型,而不是变量 -
void print_line(Person *p)怎么样? -
谢谢。我写了 `void print_line(Person *p) 并且它有效。
-
您示例中的
malloc()行看起来很危险。您应该使用sizeof来获取Person类型的大小,而不是试图找出一个需要多少int的空间,例如。malloc(sizeof(Person) * 5)其中 5 个。
标签: c function pointers malloc typedef