이전에 물어 보면 미리 사과드립니다. 찾지 못했습니다.C Matrix Dimension from Declaration
실용적인 것은 거의없는 이상한 버그 일뿐입니다. I 다른 기능이 매트릭스를 사용하여 크기를 호출 할 때, I는 크기의 행렬을 선언
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void print_matrix(int a[4][3], int i, int j)
{
printf("a[%d][%d] = %d\n", i, j, a[i][j]);
return;
}
int main(void)
{
int i, j;
int array[3][5];
for (i = 0; i < 3; i++)
{
for(j = 0; j < 5; j++)
{
scanf("%d",&(array[i][j]));
}
}
printf("array[2][1] = %d\n", array[2][1]);
print_matrix(array, 2, 1);
printf("array[0][4] = %d\n", array[0][4]);
print_matrix(array, 0, 4);
return 0;
}
[3] [5]하지만, [4] [3], 그 이상 결과를 반환 여기서 코드는 . 누군가이 시나리오에서 메모리에 액세스하는 방법을 설명 할 수 있습니까?
컴파일러에서 경고해야합니다. 모든 경고가 사용 가능하도록 컴파일하십시오. –
단순히 void print_matrix (int x, int y, int a [x] [y])'로 함수를 변경하십시오. C는 크기가 0 인 배열을 허용하지 않습니다. – Lundin