2014년 8월 25일 월요일

리턴값과 포인터

리턴값의 포인터를 처리할때. 주소가 리턴되지 범위 내의 스택변수가 생성되지 않음에 주의!

int* rtnp()
{
   int* n = new int();
return n;
}

//호출부
int a;
rtnp()=&a; //에러.. 이유는 포인터 변수의 값인 주소가 리턴되는 것이지 포인터 변수가 생성되는 것이 아니기 때문이다.
*rtnp()= a; //같이 주소를 역참조해서 사용해야 한다.