2
내 프로그램에서 함수를 통해 미리 초기화 된 2D 배열을 전달하려고합니다. 첫 번째 요소를 올바르게 가져오고 있지만 나머지는 지나가는 동안 0으로 초기화됩니다. 나는 왜이 문제가 발생하는지 알지 못한다. 배열을 전달하기 위해 포인터를 사용하고 싶지 않습니다. 포인터를 사용하지 않고 2D 배열을 전달할 수 있는지 확인하십시오. 여기 는 코드입니다 -C에서 포인터를 사용하지 않고 함수를 통해 2D 배열을 전달하는 방법
#include<stdio.h>
#define MAX(a,b) (a>b)?a:b
int kat(int S,int A[][S])
{
int i,j,r[S];
r[0] = A[0][0];
j = 0;
for(i=1;i<S;i++)
{
r[i] = MAX(r[i-1] + A[i][j],r[i-1] + A[i][j+1]);
if (r[i-1] + A[i][j] < r[i-1] + A[i][j+1])
j = j+1;
}
return r[S-1];
}
int main()
{
int A[100][100],T,S,i,j,k,ans;
scanf("%d",&T);
while(T--)
{
i=0;
scanf("%d",&S);
for(k=1;k<=S;k++)
{
for(i;i<k;i++)
{
for(j=0;j<=i;j++)
{
scanf("%d",&A[i][j]);
}
}
}
ans = kat(S,A);
printf("%d\n",ans);
}
}