0
void enterTwoArrays()
{
printf("Enter m!\n");
scanf("%d",&m);
printf("Enter n!\n");
scanf("%d",&n);
int arr[m][n];
printf("Enter m2!\n");
scanf("%d",&m2);
printf("Enter n2!\n");
scanf("%d",&n2);
int arr2[m2][n2];
for(i=0; i<=m-1; i++)
{
for(j=0; j<=n-1; j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0; i<=m2-1; i++)
{
for(j=0; j<=n2-1; j++)
{
scanf("%d",&arr2[i][j]);
}
}
}
void addition(int arr[m][n], int arr2[m2][n2])
{
int arr3[m][n];
for(i=0; i<=m-1; i++)
{
for(j=0; j<=n-1; j++)
{
arr3[i][j]=arr[i][j]+arr2[i][j];
}
}
}
안녕하세요, 문제가 있습니다. C에서 두 함수가 있습니다. 첫 번째 함수에서는 배열을 만들고 채 웁니다. 두 번째 함수는 두 개의 배열 값을 더합니다. 그러나 내가하려고 할 때, 프로그램은 부서진다. 문제가 어디 있는지 알 것 같습니다. 자사의 사촌 내 배열은 일종의 지역 및 나는 나중에 메인에서 두 번째 기능을 보낼 수 없습니다. 그러면 어떻게 그 문제를 해결할 수 있을까요? main과 be4 main에서 n과 m 변수를 모른 채 이들 배열을 선언 할 수 없습니다.배열을 C로 전역 배열로 만드는 방법은 무엇입니까?
포인터를 배열에 전달할 수 있습니다. –
배열의 포인터를 함수의 인수로 전달하십시오. –
코드 자체에 본질적으로 잘못된 것은 하나도 없지만 최소한 "m2"와 "n2"는 각각 "m"과 "n"만큼 커야합니다. 주어진 run에 해당하지 않으면,'addition()'함수는 그것의 경계 밖에서'arr2'에 접근을 시도 할 것입니다. 아마도 하나의 공통된 차원 집합을 읽고 두 배열에 모두 사용해야합니다. –