#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.