| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 641 人关注过本帖
标题:关于C语言排序程序运行内存出错问题
只看楼主 加入收藏
zcs34989
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2011-8-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
关于C语言排序程序运行内存出错问题
最近学习指针, 用C写了一个通过指针排序的代码,生成的程序运行后提示“内存错误”,求解原因,谢谢。。。
程序代码:
# include <stdio.h>
/*
    判断两个数的大小,并把最大的数赋值给前者,最小值赋值给后者。
*/
void max(int *x, int *y)
{
    int *z = NULL;

    if(*x > *y)
    {
        ;
    }
    else
    {
        *z = *y;
        *y = *x;
        *x = *z;
    }

}

int main(void)
{
    int a, b, c, d;

    //scanf("%d%d%d%d", &a, &b, &c, &d);
    a = 1; b = 2; c= 3; d = 4;

    max(&a, &b);            //a是a、b的最大值
    max(&c, &d);            //c是c、d的最大值
    max(&a, &c);            //a是a、c的最大值
    max(&b, &d);            //b是b、d的最大值

    printf("%d > %d > %d > %d\n", a, c, b, d);

    return 0;
}
搜索更多相关主题的帖子: 内存 C语言 最大的 
2011-11-23 22:21
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
void max(int *x, int *y)
{
    int z;

    if(*x > *y)
    {
        ;
    }
    else
    {
        z = *y;
        *y = *x;
        *x = z;
    }

}

总有那身价贱的人给作业贴回复完整的代码
2011-11-23 22:24
zcs34989
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2011-8-17
收藏
得分:0 
回复 2楼 embed_xuel
问题是解决了,谢谢,能解释下原因吗, 为什么用指针会出现那样的错误?

[fly]努力攻下C语言[/fly]
2011-11-23 22:28
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
要想理解指针,先要有内存的概念

总有那身价贱的人给作业贴回复完整的代码
2011-11-23 22:33
zcs34989
Rank: 2
等 级:论坛游民
帖 子:34
专家分:34
注 册:2011-8-17
收藏
得分:0 
回复 4楼 embed_xuel
OK,谢啦。。

[fly]努力攻下C语言[/fly]
2011-11-23 22:51
快速回复:关于C语言排序程序运行内存出错问题
数据加载中...
 
   



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

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