• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

동적할당 질문

21.07.20 16:54 작성 조회수 102

0

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

로 초기화를 해주고있는데 

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

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

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

답변 1

답변을 작성해보세요.

0

안소님의 프로필

안소

2021.07.20

안녕하세요 :)

*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 인 셈입니다.)

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