结构体指针动态内存分配
时间: 2023-12-15 21:32:18 浏览: 100
动态内存分配是在程序运行时根据需要分配内存的过程。结构体指针动态内存分配是指在程序运行时,使用malloc()函数为结构体指针分配内存空间,以便在程序运行时动态地创建结构体对象。以下是结构体指针动态内存分配的例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
char name[20];
int age;
};
int main() {
struct student *p;
p = (struct student *) malloc(sizeof(struct student));
if (p == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
printf("Enter name: ");
scanf("%s", p->name);
printf("Enter age: ");
scanf("%d", &p->age);
printf("Name: %s\n", p->name);
printf("Age: %d\n", p->age);
free(p);
return 0;
}
```
在上面的示例代码中,我们首先定义了一个结构体student,然后定义了一个指向该结构体的指针p。接着,我们使用malloc()函数为p分配了一个结构体student的内存空间,并检查了内存分配是否成功。然后,我们使用scanf()函数从用户输入中读取name和age的值,并使用printf()函数输出这些值。最后,我们使用free()函数释放了p所指向的内存空间。
阅读全文