강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

ajh427님의 프로필 이미지
ajh427

작성한 질문수

홍정모의 따라하며 배우는 C++

8.6 소멸자 destructor

동적할당 질문

작성

·

178

0

퍼블릭 문에보게되면 m_arr = new int[m_length];

로 초기화를 해주고있는데 

동적할당에서 new문을쓸때 주소값을 반환해주는거라서 

포인터로 받아야하는거 아닌가요?

*m_arr = new int[m_length]; 처럼요

답변 1

0

안녕하세요 :)

*m_arr 은 포인터를 간접참조하는 것입니다.

int * m_arr; 이 선언문은 m_arr 이라는 변수를 선언하는데 그 변수의 타입이 int *  (int 데이터가 위치한 주소)라는 뜻입니다.

(int * m_arr 을 int * + m_arr 로 생각하셔야 하는데 int + *m_arr 로 생각하신 것 같아 말씀드립니다.)

m_arr 이 포인터 변수인 것이기 떄문에 new 의 리턴값을 m_arr 로 대입을 받습니다.

*m_arr 은 간접참조가 됩니다. m_arr 이 가리키는 int 데이터! 인 것입니다. new 는 주소를 리턴하기에 *m_arr 에 대입받는 것은 타입이 맞지 않습니다.

(m_arr 이 int * 즉, 포인터이구요, *m_arr 은 int 인 셈입니다.)

포인터 파트를 다시 복습해보시기를 추천드려요!

ajh427님의 프로필 이미지
ajh427

작성한 질문수

질문하기