微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用typedef变量作为参数

如何解决如何使用typedef变量作为参数

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变量作为参数

就像您使用内置类型一样。

这就是typedef背后的全部思想-您创建自己的类型并将其像其他类型一样使用。

如果您想通过int,则可以这样做

void foo(int input) {...}

如果您想通过自己的类型,请输入

typedef ...... myType;

void foo(myType input) {...}

主题外

您的代码:

Person *p=(Person*)malloc(sizeof(int)*20);

错了!请勿使用sizeof(int),因为您的类型Person的大小没有限制。不那么重要-仍然-在C语言中,您不会强制转换malloc。这样做的方法是:

    Person *p=malloc(20 * sizeof *p);  // Allocate memory for 20 Person

    Person *p=malloc(20 * sizeof(Person));   // Allocate memory for 20 Person

但是第一个是首选。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。