#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);