-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
동적할당 질문
21.07.20 16:54 작성 조회수 102
0
퍼블릭 문에보게되면 m_arr = new int[m_length];
로 초기화를 해주고있는데
동적할당에서 new문을쓸때 주소값을 반환해주는거라서
포인터로 받아야하는거 아닌가요?
*m_arr = new int[m_length]; 처럼요
답변을 작성해보세요.
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 인 셈입니다.)
포인터 파트를 다시 복습해보시기를 추천드려요!
답변 1