除了数组外,如何使用指针接收结构体输入?
时间: 2024-09-21 22:01:39 浏览: 34
指向结构体数组的指针-C语言入门教程
除了数组,你也可以使用动态内存分配或指向结构体的指针来接收结构体输入。下面是一个使用指针的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体
struct Person {
char name[50];
int age;
};
void getPersonInput(struct Person* person) {
printf("请输入人的信息(名字和年龄,空格分隔):");
fgets(person->name, sizeof(person->name), stdin);
// 假设用户输入的是有效整数
person->age = atoi(strtok(NULL, " \n"));
}
int main() {
// 动态分配内存
struct Person* p = malloc(sizeof(struct Person));
if (!p) {
perror("Memory allocation failed");
return 1;
}
// 获取输入并初始化结构体
getPersonInput(p);
printf("姓名:%s, 年龄:%d\n", p->name, p->age);
// 使用完后记得释放内存
free(p);
return 0;
}
```
在这个例子中,我们创建了一个指向`struct Person`的指针`p`,然后在`getPersonInput`函数中通过指针操作结构体。当不再需要该结构体时,应调用`free`释放之前动态分配的内存。
阅读全文