C语言 typedef struct内存分配
时间: 2023-08-13 16:11:49 浏览: 123
在C语言中,typedef是一种用来为已有的数据类型创建新的类型名的关键字。而struct是用来定义自定义数据类型的关键字。
当我们在结构体中使用typedef时,可以简化我们对结构体类型的使用。下面是一个示例:
```c
typedef struct {
int id;
char name[20];
float salary;
} Employee;
int main() {
Employee emp; // 使用typedef定义的新类型名Employee
emp.id = 1;
strcpy(emp.name, "John");
emp.salary = 5000.0;
// 动态分配内存给结构体指针
Employee* empPtr = malloc(sizeof(Employee));
empPtr->id = 2;
strcpy(empPtr->name, "Jane");
empPtr->salary = 6000.0;
// 释放动态分配的内存
free(empPtr);
return 0;
}
```
在上面的示例中,typedef将结构体定义为一个新的类型名Employee。我们可以直接使用Employee来声明结构体变量emp,而无需每次写上struct关键字。同时,我们还可以动态分配内存给结构体指针empPtr,并通过箭头操作符(->)访问结构体成员。
需要注意的是,在使用动态内存分配函数(如malloc)为结构体指针分配内存后,记得在使用完后调用free函数释放内存,以避免内存泄漏。
阅读全文