[C++] 📂. 다중 포인터(Multiple Indirection)
0. 예제
...
void SetMessage(const char* msg)
{
msg = "Message 2";
}
int main()
{
const char* msg = "Message 1";
SetMessage(msg);
cout << msg;
return 0;
}
- 결과
msg의 값이 바뀌지 않는다.
- 이유
SetMessage의 매개변수 msg의 값은 함수가 return되면 stack에서 해제되어 변경값은 사라진다.
(msg가 가리키는 값이 Message 1 인 것은 변함없다.)
1. 다중 포인터(**)
...
void SetMessage(const char** p_msg)
{
*p_msg = "Message 2";
}
int main()
{
const char* msg = "Message 1";
SetMessage(&msg);
cout << msg;
return 0;
}
- 결과
const char* 를 T로 치환해서 생각해 보면 쉽게 이해 할 수 있다.
댓글남기기