关于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; }