지뢰찾기 심사문제 질문입니다
, 응애 응애님이 작성memset으로 초기화하는 코딩을 모르겠네요
2차원 동적할당은 memset 문법이 어떻게 되는지 도무지 모르겠습니다.
디버깅해도 자꾸 오류만 나고 찾아봐도 2차원 동적할당 memset은 자세하게 나와있지를 않네요..
int m, n;
scanf("%d %d", &m, &n); // 세로가로 입력
char **matrix = malloc(sizeof(char *) * m);
for (int i = 0; i < m; i++)
matrix[i] = malloc(sizeof(char) * (n + 1)); // 동적할당 완
for (int i = 0; i < m; i++)
scanf("%s", matrix[i]); //입력부분
이다음에 메모리를 0으로 초기화를 해야 할텐데 도무지 문법을 모르겠습니다.
회신: 지뢰찾기 심사문제 질문입니다
, 라떼 킹님이 작성for (int i = 0; i < m; i++)
{
matrix[i] = malloc(sizeof(char) * n + 1)); // 동적할당 완
memset(matrix[i], 0, sizeof(char) * n + 1);
}
이러면 될 걸요. +1은 끝에 NULL 문자 때문에 필요한 거니 (n+1)개가 아니라 n개 + 1바이트의 의미요.