請幫忙解決了這個program.I'm嘗試使用指針,而不是陣列打印指針數組的功能,但我得到這個錯誤:傳球達陣使用指針
enter number of element:5
array[0]=1
array[1]=2
array[2]=3
array[3]=4
array[4]=5
Segmentation fault
這是代碼:
#include <stdio.h>
#include <stdlib.h>
int *array;
int n;
void input(int *array,int n);
void display(int *array,int n);
int sum(int *array,int n);
int main (void) {
int result;
printf("enter number of element:");scanf("%d",&n);
input(array,n);
display(array,n);
result=sum(array,n);
printf("sum of array=%d",result);
return 0;
}
void input(int *array,int n){
int j;
array=(int *)malloc(n*sizeof(int));
for(j=0;j<n;j++){
printf("array[%d]=",j);scanf("%d",array+j);
}
}
void display(int *array,int n){
int j;
for(j=0;j<n;j++){
printf("%d\t",*(array+j));
}
printf("\n");
}
int sum(int *array,int n){
int sum=0,j;
for(j=0;j<n;j++){
sum+=*array+j;
}
return sum;
}
我怎樣才能修復這個代碼?請解釋人我有什麼錯代碼
刪除陣列從輸入函數的參數。它將工作 – 999k
@ 555k敢於解釋,爲什麼? – m0skit0
@ m0skit0請從下方巴拉克馬諾斯檢查答。對不起,我有點忙,只是想幫助他。 – 999k