배열에있는 모든 양수를 합산하는 함수가 있지만 함수 매개 변수 배열을 포인터로 사용하는 프로그램을 작성해야했습니다. 주 함수에서 sum 함수를 호출하려고 할 때 문제가 발생합니다. 여기 내 소스 코드입니다 :함수에서 배열 포인터를 사용하는 방법은 무엇입니까?
#include <stdio.h>
#include <conio.h>
int posit(int *x[], int n){
int s=0;
for(int i=0; i<n; i++){
if(*x[i]>0){
s=s+*x[i];
}
}
return s;
}
int main(){
int k;
scanf("%d",&k);
int a[k];
for(int i=0; i<k; i++){
scanf("%d",&a[i]);
}
int b=posit(&a,k);
printf("%d\n", b);
getch();
return 0;
}
당신은 말을 사용할 수 주에서이 함수를 호출하기로
소스를 수정할 수 있습니다, 그것은 posit // int b = posit (& a, k) // 함수를 호출 한 후 [여기서 배열은] [] [] [] [] [] 될 것입니다. 나는 당신이 처음에 말했듯이 그것을 썼지 만 제 가정 교사가 거부했습니다. 그는 내가 이런 식으로 함수를 작성하도록 만든다 // int posit (int * x [], int n) // – bbilegt
@filemonster,'int * x []'는'int *'의 배열이다.'' int'. – hmjd
@filemonster : 또한, '& a'는 배열에 대한 포인터이고'int (*) [k]'유형을가집니다. – newacct