| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1230 人关注过本帖
标题:哪位大哥能帮我看看这个问题出在哪呢....程序总是执行到一半就结束了...
只看楼主 加入收藏
moonboylst
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-7-23
结帖率:20%
收藏
已结贴  问题点数:20 回复次数:26 
哪位大哥能帮我看看这个问题出在哪呢....程序总是执行到一半就结束了...
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int *a,b[13]={0,0,0,0,0,0,0,0,0,0,0,0,0},c[13]={65,0,95,0,0,79,82,0,84,94,86,90,0};
    int i=0,j=0,k;
    a=(int *)calloc(13,sizeof(int));
    if(a!=NULL)
    {
        printf("yes\n");
    }
    for(i=0;i<13;i++)
    {
        a[i]=c[i];
    }
   
    for(i=0,k=0;i<13;i++)
    {
        if(a[i]!=0)
        {
            a[i]=b[k];
            k++;
        }
        else if(a[i]==0)
        {
            continue;
        }
    }
    for(k=0;k<13;k++)
    {
        if(b[k]!=0)
        {
            printf("%3d",b[k]);
            j++;
        }
    }
   
    a=(int *)malloc(j*sizeof(int));
    for(i=0;i<j;i++)
    {
        *(a+i)=b[i];
    }
    for(i=0;i<j;i++)
    {
        printf("a[i]");
    }

}
搜索更多相关主题的帖子: continue include 
2012-07-25 12:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
不知道你的程序想干什么,只看到你很别出心裁地用不同的方法申请动态内存。

授人以渔,不授人以鱼。
2012-07-25 13:05
moonboylst
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-7-23
收藏
得分:0 
回复 2楼 TonyDeng
额...我是想写一个扫面数组,删除值为0的元素.最后再压缩数组的大小....
2012-07-25 13:15
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:7 
printf("a[i]");
这句是要干吗?

总有那身价贱的人给作业贴回复完整的代码
2012-07-25 13:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你不会把数组需要保留的数据拷贝一份到新的内存中的么,非要这样伸缩内存,你真以为系统中的堆内存是可以让你随意“压缩”的呀?不测试,光看你用同一个指针a指向两次申请的内存空间,就觉得不对劲(不说没有释放内存了)。整个设计思路就有问题。

授人以渔,不授人以鱼。
2012-07-25 13:21
moonboylst
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-7-23
收藏
得分:0 
回复 4楼 embed_xuel
额....写错了,抱歉,应该是printf("%3d",a[i]);  是想输出数组...
2012-07-25 13:22
moonboylst
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-7-23
收藏
得分:0 
回复 5楼 TonyDeng
额....因为刚刚接触C语言,有些东西还不是很懂,多谢指教,我再想想别的思路吧。
2012-07-25 13:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
其实,我不知道你为什么要压缩,不是说做不到,但最好考虑一下压缩是否值得。

授人以渔,不授人以鱼。
2012-07-25 13:35
moonboylst
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2012-7-23
收藏
得分:0 
回复 8楼 TonyDeng
嗯....只是遇到一个题目要求压缩...想啦好久做不出来...觉得很不甘心啊...
2012-07-25 13:41
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:7 
内存泄露了
不考虑楼主意图,看楼主的代码的话,应该是
a[i]=b[k];
这句有问题

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-07-25 13:51
快速回复:哪位大哥能帮我看看这个问题出在哪呢....程序总是执行到一半就结束了. ...
数据加载中...
 
   



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

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