| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 355 人关注过本帖
标题:内存问题
只看楼主 加入收藏
…简式…
Rank: 2
等 级:论坛游民
帖 子:17
专家分:31
注 册:2012-7-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
内存问题
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define PROJNUM 2
#define _ ,
#define INFO(a) printf("info:");printf(a);
#define INFOLINEF(a) printf("info:");printf(a);printf("\n");
#define ERROR(a) printf("info:");printf(a);
#define ERRORLINEF(a) printf("info:");printf(a);printf("\n");
struct Date
{
    unsigned int year;
    unsigned int month;
    unsigned int day;
};
struct Project
{
    char ProjName[32];
    char ProjManager[32];
    float ProjIncome;
    struct Date ProjStar;
    struct Date ProjEnd;
    float projOutcome;
};
void ProjectSave(struct Project *ProjAddr,FILE *fp_in);
void ProjectPrint(FILE *fp_out);
void main()
{
    int i;
    struct Project *pProj=NULL,*pProjCopy=NULL;
    FILE*fp;
    fp=fopen("D:\\C_language\\ProjectManagement.txt","wb+");
    if(NULL==fp)
    {
        ERRORLINEF("文件打开失败!!");
        return;
    }
    else
    {
        INFOLINEF("成功,文件打开完成。");
    }
    pProj=(struct Project*)malloc(PROJNUM*sizeof(struct Project));
    pProjCopy=pProj;
    INFOLINEF("-----------------------------------------");
    for(i=0;i<PROJNUM;i++,pProj++)
    {
        INFO("输入项目名称:");
        scanf("%s",pProj->ProjName);
        INFO("输入项目管理员名:");
        scanf("%s",pProj->ProjManager);
        INFO("输入项目收益:");
        scanf("%f",pProj->ProjIncome);
        INFO("输入项目开始日期:");
        scanf("%u %u %u",pProj->ProjStar.year,pProj->ProjStar.month,pProj->ProjStar.day);
        INFO("输入项目结束日期:");
        scanf("%u %u %u",pProj->ProjEnd.year,pProj->ProjEnd.month,pProj->ProjEnd.day);
        INFO("项目开销:");
        scanf("%f",pProj->projOutcome);
    }
    ProjectSave(pProjCopy,fp);
    INFOLINEF("----------------------------------------");
    rewind(fp);
    ProjectPrint(fp);
    rewind(fp);
    i=fclose(fp);
    if(0==i)
    {
        INFOLINEF("文件关闭时成功");
    }
    else
    {
        ERRORLINEF("文件关闭失败");
    }
    free(pProjCopy);
    INFOLINEF("----------------------------------------");
}
void ProjectSave(struct Project *ProjAddr,FILE *fp_in)
{
    int i=0;
    i=fwrite(ProjAddr,PROJNUM*sizeof(struct Project),1,fp_in);
    if(0==i)
    {
        ERRORLINEF("文件写入失败");
    }
    else
    {
        INFOLINEF("文件写入成功");
    }
    rewind(fp_in);
}
void ProjectPrint(FILE *fp_out)
{
    int i=0;
    struct Project OutProject[2];
    fread(OutProject,PROJNUM*sizeof(struct Project),1,fp_out);
    for(i=0;i<PROJNUM;i++)
    {
        INFOLINEF("项目名称:%s",OutProject[i].ProjNam);
        INFOLINEF("项目负责人:%s",OutProject[i].ProMananger);
        INFOLINEF("项目收入:%f",OutProject[i].InCome);
        INFOLINEF("项目开始时间:%d年%d月%d日",outProject[i].projStart.year,outProject[i].projStart.month,outProject[i].projStart.day);
        INFOLINEF("项目结束时间:%d年%d月%d日",outProject[i].projEnd.year,outProject[i].projEnd.month,outProject[i].projEnd.day);
        INFOLINEF("项目支出:%f",OutProject[i].OutCome);
    }
}
搜索更多相关主题的帖子: info 
2012-07-12 19:30
…简式…
Rank: 2
等 级:论坛游民
帖 子:17
专家分:31
注 册:2012-7-4
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
为什么会出现这样的问题?应该怎样解决?
2012-07-13 08:09
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:20 
scanf("...",&..)第二及其后参数应该用地址。

★★★★★为人民服务★★★★★
2012-07-13 08:36
…简式…
Rank: 2
等 级:论坛游民
帖 子:17
专家分:31
注 册:2012-7-4
收藏
得分:0 
回复 3楼 cnfarer
谢谢了~
2012-07-13 10:02
快速回复:内存问题
数据加载中...
 
   



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

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