강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của cjkoo961396
cjkoo961396

câu hỏi đã được viết

C ngôn ngữ học theo cách làm của Hồng Jeong-mo

12.15 Sử dụng bộ nhớ được cấp phát động như mảng

5분 40초 쯤 질문입니다.

Viết

·

276

0

int row = 3, col = 2;

int(*ptr2d)[2] = (int(*)[2])malloc(sizeof(int) * row * col);

이 라인에서 2차원 배열 포인터를 만들 때 포인터 변수 뒤에 왜 column 값을 넣어주는 건가요? 저는 같은 row끼리는 같은 포인터 변수를 사용하여 연산할 수 있으므로 row가 넘어갈 때 포인터 변수의 인덱스가 바뀌어야한다고 생각했습니다. 그리고 malloc의 타입 변환에서 (int(*)[2]) 이렇게 선언하는 것도 잘 이해가 안됩니다. 저런  자료형도 존재하는 건가요? 그냥 규칙이라고 받아들여야하나요?

c

Câu trả lời 3

1

안녕하세요? 강의에 등장했었던 내용입니다.
(int(*)[2]) 를 언급하셨기에 제가 몰랐네요.
10.14 강의를 참고해보세요.

0

cjkoo96님의 프로필 이미지
cjkoo96
Người đặt câu hỏi

저 자료형이 무엇인지 고민해봐도 모르겠어서 질문을 드린겁니다...

0

안녕하세요?
int(*ptr2d)[2] 의 자료형이 무엇인지와 pointer arithmetic이 원하는대로 동작하려면 어떻게 해야할까? 를 다시 고민해보시는 것이 좋을 것 같습니다.

Hình ảnh hồ sơ của cjkoo961396
cjkoo961396

câu hỏi đã được viết

Đặt câu hỏi