#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
int age;
int sex;
}stu;
typedef struct classroom
{
int num;
stu **people;
}class;
int main()
{
//定义临时变量 tmp
stu * tmp = NULL;
//定义班级
class senior;
//班级人数
senior.num = 10;
class *grade =&senior;
tmp = malloc(senior.num * sizeof(stu));
printf("malloc memory address is %p\n",tmp);
printf("sizeof(int) is %d\n",sizeof(int));
printf("sizeof(senior) is %d\n",sizeof(senior));
printf("sizeof(stu) is %d\n",sizeof(stu));
tmp[0].age = 20;
tmp[0].sex = 1;
tmp[1].age = 25;
tmp[1].sex = 0;
printf("people[0] age is %d\n",tmp[0].age);
printf("people[1] age is %d\n",tmp[1].age);
return 0;
}
我的疑问是想通过几种方式操作申请的那块内存( 10 个 stu 结构体类型),既能通过 tmp 操作,又能通过结构体 senior 或者结构体指针 grade 操作,可是尝试了多次发现有点不对,我已经在指针和二级指针中迷失了方向.
我的几点理解: 我在结构体 class 班级中定义关于 stu 的二级指针,方便通过 stu 的指针去操作和管理 stu,起初是用的一级指针,发现解决不了问题,现在用二级指针,对地址这部分存在疑问.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.