为什么子函数还会段异常
为什么子函数还会段错误?
Cd_chiong-mini2440(2444048960) 16:54:16
#include<stdio.h>
#define N 20
int main(){
int n,i,x[N];
printf("请输入学生人数:");
scanf("%d",&n);
printf("输入%d个数据\n",n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
printf("the max is:%d\n",fun(x,n));
}
int fun(int x[],int n){
int i,max=0,*index=0;
for(i=0;i<n;i++){
if(x[i]>max)
{max=x[i];*index=i;}
else;
}
return max;
}
求解为何在子函数还会段错误?
------解决方案--------------------
int *index=0;
*index=i;
对NULL单元赋值么...
------解决方案--------------------
何必用指针,用个局部变量int index不方便多了
即使用指针也要指向正确的地方:
int index;
int *indexptr = &index;
------解决方案--------------------
你的指针没空间就存值了。
Cd_chiong-mini2440(2444048960) 16:54:16
#include<stdio.h>
#define N 20
int main(){
int n,i,x[N];
printf("请输入学生人数:");
scanf("%d",&n);
printf("输入%d个数据\n",n);
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
printf("the max is:%d\n",fun(x,n));
}
int fun(int x[],int n){
int i,max=0,*index=0;
for(i=0;i<n;i++){
if(x[i]>max)
{max=x[i];*index=i;}
else;
}
return max;
}
求解为何在子函数还会段错误?
------解决方案--------------------
int *index=0;
*index=i;
对NULL单元赋值么...
------解决方案--------------------
何必用指针,用个局部变量int index不方便多了
即使用指针也要指向正确的地方:
int index;
int *indexptr = &index;
------解决方案--------------------
你的指针没空间就存值了。