| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 740 人关注过本帖
标题:为什么会出现这个?
只看楼主 加入收藏
想编程的蝈蝈
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-26
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:3 
为什么会出现这个?
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
int main()
{
    int i,N,j;
    struct Person
    {
        char name[6];
        struct date
        {
            int year;
            int month;
            int day;
        }birthday;
    }*per,*p;
    scanf("%d",&N);
    //fflush(stdin);
    p=(struct Person*)malloc(N*sizeof(struct Person));
    if(p==NULL)
    {
         
         printf("不成功");
         exit(1);
    }
   
    for(p=per;p<per+N;p++)
    {
        scanf("%s%d/%d/%d",p->name,&p->birthday.year,&p->birthday.month,&p->birthday.day);//请输入名字
    }
    for(p=per;p<per+N;p++)
    {      
        printf("%d %d %d\n",p->birthday.year,p->birthday.month,p->birthday.day);
         
    }
   
        //printf("%d",count);
    return 0;
}
为什么运行输入输出后,出现了个弹出框。
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-6-29 21:21编辑过]

2016-06-29 21:19
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:7 
per是什么?
2016-06-29 21:46
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
收藏
得分:7 
struct Person
    {
        char name[6];
        struct date
        {
            int year;
            int month;
            int day;
        }birthday;
    }*per,*p;
将代码中的改为per[4], 就可以了。因为per并未定义,产生垃圾值了,故内存溢出
2016-06-29 23:02
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:7 
per=p=(struct Person*)malloc(N*sizeof(struct Person));这句改成这样
不然per就是野指针。
2016-06-30 06:44
快速回复:为什么会出现这个?
数据加载中...
 
   



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

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