38.7 심사문제 질문입니다
, Unknownd one님이 작성#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int input = 10;
scanf("%d", &input);
int** arr = malloc(sizeof(int) * input);
for (int i = 0; i < input; i++)
{
arr[i] = malloc(sizeof(int) * input);
memset(arr[i], 0, sizeof(int) * input);
}
for (int i = 0; i < input; i++)
{
arr[i][i] = 1;
}
for (int i = 0; i < input; i++)
{
for (int j = 0; j < input; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
free(arr[input]);
free(arr);
return 0;
}
다음 코드에서 뭐가 잘못됬는지 실행되지 않는 코드라고 계속 나옵니다.
Re: 38.7 심사문제 질문입니다
, 도장_ 관리자님이 작성Unit 38.3 예제를 보면
for (int i = 0; i < 3; i++) // 세로 크기만큼 반복
{
free(m[i]); // 2차원 배열의 가로 공간 메모리 해제
}
free(m); // 2차원 배열의 세로 공간 메모리 해제
해제할 때 2차원 배열의 안쪽은 반복문을 통해 순차적으로 해제해야 합니다.
UNIT 38을 천천히 복습하면서 작성한 코드와 비교해보세요.