标题:请问哪里出错了呢?
只看楼主
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
结帖率:88.89%
已结贴  问题点数:2 回复次数:4 
请问哪里出错了呢?
正在练习向结构体成员赋值
编译没有错误,运行输入后停止运行!!
#include<stdio.h>
#define N 2
#define M 3

typedef struct
{
    char mname[10];
    int record[M];
   
}MANAGE;
void main()
{
    MANAGE *stu[N];
    printf("输入信息\n");
    for(int i=0;i<N;i++)
    {  
        printf("%dth:",i+1);   //第几个信息
        for(int j=0;j<M;j++)
          scanf("%d",&stu[i]->record[j]);
    }
        for(i=0;i<N;i++)
           for(int j=0;j<M;j++)
                printf("%d",stu[i]->record[j]);


}
搜索更多相关主题的帖子: 信息 void include record 结构体 
2012-11-06 10:15
hejian11
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-10-23
得分:2 
你没有给结构体进行内存开辟!
代码我给你改了下,你看下是否符合要求!

#include<stdio.h>
#define N 2
#define M 3

typedef struct
{
    char mname[10];
    int record[M];
   
}MANAGE;
void main()
{
    int i,j;
    MANAGE *stu[N];
   for(i=0;i<N;i++) {
        stu[i] = (MANAGE*)malloc(sizeof(MANAGE));
    }
    printf("输入信息\n");
    for(i=0;i<N;i++)
    {  
        printf("%dth:",i+1);   //第几个信息
        for(j=0;j<M;j++) {
          scanf("%d",&stu[i]->record[j]);
//          fflush(stdin);
        }
    }
        for(i=0;i<N;i++)
           for(j=0;j<M;j++)
                printf("%d",stu[i]->record[j]);


}
2012-11-06 11:01
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
得分:0 
回复 2楼 hejian11
这样的确可以,但是内存它不是可以自动分配吗?用到指针后就得申请内存了吗?不一定的吧?
2012-11-06 11:19
hejian11
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-10-23
得分:0 
不是的,如果你只是定义的基本类型的话,你定义的时候就会给内存的,因为他们存储的方式跟自己定义的类型不一样,所以不用考虑分配内存,因为你用到了结构体,这个是自己定义的,要进行操作就得分配内存!
2012-11-06 11:24
hejian11
Rank: 2
等 级:论坛游民
帖 子:35
专家分:49
注 册:2012-10-23
得分:0 
别忘了给分哦!亲!
2012-11-06 11:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-386035-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.328426 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved