#include <stdio.h>
#include <stdlib.h>
struct person{
char *name;
unsigned int age;
void (*speak)();
void (*eat)();
};
void speak_chinese(){
printf("speak chinese\n");
}
void eat_bread(){
printf("eat bread\n");
}
struct person *init_person(){//函数指针 返回值是struct person
struct person *person=NULL;//struct person类型的指针
person=(struct person *)malloc(sizeof(struct person));
if (!person) {
printf("failed.");
return NULL;
}
person->name="liu";
person->age=12;
person->speak=speak_chinese;
person->eat=eat_bread;
printf("name is %s,age is %d\n",person->name,person->age);
return person;
}
void free_person(struct person *person){
if (person!=NULL) {
free(person);
person=NULL;
}
}
int main(){
struct person *chinese_person;
chinese_person=init_person();
if (chinese_person) {
chinese_person->speak();
chinese_person->eat();
free(chinese_person);
}
}
结构体指针
最新推荐文章于 2024-05-29 12:49:34 发布