-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
5분 40초 쯤 질문입니다.
20.11.27 16:09 작성 조회수 155
0
int row = 3, col = 2;
int(*ptr2d)[2] = (int(*)[2])malloc(sizeof(int) * row * col);
이 라인에서 2차원 배열 포인터를 만들 때 포인터 변수 뒤에 왜 column 값을 넣어주는 건가요? 저는 같은 row끼리는 같은 포인터 변수를 사용하여 연산할 수 있으므로 row가 넘어갈 때 포인터 변수의 인덱스가 바뀌어야한다고 생각했습니다. 그리고 malloc의 타입 변환에서 (int(*)[2]) 이렇게 선언하는 것도 잘 이해가 안됩니다. 저런 자료형도 존재하는 건가요? 그냥 규칙이라고 받아들여야하나요?
답변을 작성해보세요.
1
0
0
Hello Yeo
2020.11.27
안녕하세요?
int(*ptr2d)[2] 의 자료형이 무엇인지와 pointer arithmetic이 원하는대로 동작하려면 어떻게 해야할까? 를 다시 고민해보시는 것이 좋을 것 같습니다.
답변 3