baidu_32457989
2015-11-23 05:50
采纳率: 43.1%
浏览 2.2k
已采纳

关于c语言结构体指针数组的问题

我有一个数组,里面每个成员都是结构体指针,我应该怎么给这个数组分配空间?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

12条回答 默认 最新

  • 有雄心的小菜鸟 2015-11-23 06:33
    已采纳

    指针变量的长度都是固定的,与你指向什么东西没关系的。

    打赏 评论
  • Robot-S 2015-11-23 05:55

    #include
    #define N 3
    struct student
    {
    long int num;
    char name[20];
    float score[3];
    float aver;
    };
    int main()
    {
    void Input(struct student stu[]);
    struct student max(struct student stu[]......
    答案就在这里:c语言结构体数组指针
    ----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

    打赏 评论
  • 数组长度乘以4(32位),而且其数组内的指针在使用前也要申请结构体大小的空间

    打赏 评论
  • 求兵 2015-11-23 06:40

    数组不用分配空间,如3楼说的一样!当你使用数组中的结构体指针时再申请动态空间!

    打赏 评论
  • 乱世浮沉 2015-11-23 06:49

    数组不用分配空间 指针在使用的时候直接molloc,使用后记得free,例如:
    char *p;
    p=char *molloc(100);
    .
    .
    .
    free (p);

    打赏 评论
  • qq_25666275 2015-11-23 06:50

    struct name*a[10];暂且取数组名为a,
    当编译器翻译这条指令,1:会首先知道原来是一个名为a的且长度为10的数组,2:然后向前扫描,哦原来是成员是结构体为name的指针,然后1+2就是这条语句的意思,因为是指针,所以长度还是10个字节,如果不是指针,长度就是10乘以成员类型。

    打赏 评论
  • 乱世浮沉 2015-11-23 06:50

    数组不用分配空间 指针在使用的时候直接molloc,使用后记得free,例如:
    char *p;
    p=char *molloc(100);
    .
    .
    .
    free (p);

    打赏 评论
  • Meditator_hkx 2015-11-23 08:52

    不愧是精英云集之地,感觉我也受教了~
    推荐题主看一本书:《C语言与陷阱》,对你理解C语言的一些细节会很有帮助哦~

    打赏 评论
  • 至远吉哥 2015-11-23 11:10

    数组不用分配空间 指针在使用的时候直接molloc,使用后记得free,例如:
    char *p;
    p=char *molloc(100);
    .
    .
    .
    free (p);

    打赏 评论
  • akcking 2015-11-23 16:38

    长知识图片说明图片说明图片说明图片说明

    打赏 评论
  • 明哥爱科学 2015-11-24 04:37

    用new关键字,后面结构体的名称

    打赏 评论
  • huangyulang 2015-11-24 06:51

    指针在使用的时候需要malloc空间(动态malloc),而数组是不需要的(固定大小),一般malloc和free是成对出现的!如:
    char p = NULL; /数组成员代替p即可*/
    p = (char )malloc(length);/*length是你需要分配的空间大小,其值视情况而定/
    if(p != NULL){
    ......
    }
    .....
    free(p);
    注: 使用完成后记得free,否则会引起内存泄露!

    打赏 评论

相关推荐 更多相似问题