关于#程序崩溃#的问题,如何解决?


#include
void maxmin(int a[],int len,int *max,int *min){
    int i=0;
    *max=a[0];
    *min=a[0];
    for(i=0;iif(a[i]>*max){
            *max=a[i];
        }
        if(a[i]<*min){
            *min=a[i];
        }
        
    }
}
int main()
{
    int a[6]={1,2,3,4,5,6,};
    int len=sizeof(a)/sizeof(a[0]);
    int *max;
    int *min;
    maxmin(a,len,max,min);
    printf("%d,%d",*max,*min);
    return 0;
}

请问为什么运行崩溃?

min和max指针没有分配空间,不能进行赋值

#include<stdio.h>
void maxmin(int a[],int len,int *max,int *min){
    int i=0;
    *max=a[0];
    *min=a[0];
    for(i=0;i<len;i++){
        if(a[i]>*max){
            *max=a[i];
        }
        if(a[i]<*min){
            *min=a[i];
        }
        
    }
}
int main()
{
    int a[6]={1,2,3,4,5,6,};
    int len=sizeof(a)/sizeof(a[0]);
    int min,max;
    maxmin(a,len,&max,&min);
    printf("%d,%d",max,min);
    return 0;
}


int *max;
int *min;
他俩只是声明了,并没有分配内存,在函数中使用  *max=a[0]时,max的内存地址未知。。
改用
int max

maxmin(a,len,&max,&min);