|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <stdlib.h>
- struct stu {
- int num;
- int age;
- char name[32];
- };
- struct stu *get_array_addr(int num) {
- return (struct stu *)calloc(num, sizeof(struct stu))
- }
- void my_setdata(struct stu *p, int num) {
- int i = 0;
- for (i = 0; i < num; i++) {
- printf("请输入学生数据:");
- scanf("%d %d %s", &((p + i) -> num), &((p + i) -> age), (p + i) -> name);
- // scanf("%d %d %s", &arr[i].num, &arr[i].age, &arr[i].name);
- }
- }
- void my_printstu(const struct stu *p, int num) {
- int i = 0;
- for (i = 0; i < num; i++) {
- printf("num = %d, age = %d, name = %s\n", p[i].num, p[i].age, p[i].name);
- }
- }
- int main(int argc, char *argv[]) {
- int n = 0;
- printf("请输入学生个数:");
- scanf("%d", &n);
- struct stu *arr = NULL;
- // 根据学生个数申请堆区空间
- arr = get_array_addr(n);
- if (arr == NULL) {
- perror("calloc");
- return -1;
- }
- // 获取键盘输入
- my_setdata(arr, n);
- // 遍历结构体数组内容
- my_printstu(arr, n);
- // 释放空间
- if (arr != NULL) {
- free(arr);
- arr = NULL;
- }
- return 0;
- }
复制代码
编译报错,提示
- struct stu *get_array_addr(int num) {
- return (struct stu *)calloc(num, sizeof(struct stu))
- }
复制代码
最后的"}"后面需要加";",但是这是一个函数啊,怎么让编译器知道他是一个返回结构体指针的函数,而不是结构体
你的 return 后面漏了分号
- struct stu *get_array_addr(int num) {
- return (struct stu *)calloc(num, sizeof(struct stu));
- }
复制代码
|
|