회신: 38.7 문제 질문드립니다
, 도장_ 관리자님이 작성int n = 0;n = 0으로 n이 0인 상태에서 sizeof(int *) * n을 계산하면 4 * 0 = 0입니다. 따라서 0 바이트를 할당한 상태가 됩니다.
int **matrix = malloc(sizeof(int *) * n);
scanf("%d", &n);
따라서 마지막에 입력받은 scanf의 n은 루프를 돌 때 쓰이지만, 할당된 적이 없는 메모리에 접근하는 용도로 쓰입니다. 따라서 메모리 오류(segmentation fault)가 발생해 심사가 진행되지 않습니다.
for (int i = 0; 1 < n; i++)
다음처럼 바뀌어야 합니다.
for (int i = 0; i < n; i++)