로켈 스택 포인터변수를 반환하면, 포인터변수는 해제되지만, 그 스택 메모리는 해제되지 않는다.
2020. 11. 4. 13:44ㆍ카테고리 없음
위의 코드는 문제없이 컴파일된다, 실행도 잘 된다.
return temp; 후 temp라는 포인터변수 그 자체는 해제된다, => 해당 함수 실행 종료 후, temp라는 변수는
다시 재사용 할 수 없다.
하지만, temp가 가르키고 있던, 스택메모리가 해제되는것은 아니다.
하지만 quite nullsafe 해보이지는 않는다.
함수의 가장 중요한 점이, 재사용성과 독립성인데, 이전에 포스팅 한 것과 같이,
어떤 메모리 주소를 인수로 받아서, 이 주소의 역참조나 조작을 시행 한 뒤, 해당 메모리를 반환하는 형태가
더 함수의 건전성을 유지하는 것이라 생각된다.
예를들어 아래의 함수는 아주 잘 짜여진것이라 사료된다.
ofstream& operator<< (ofstream& _cout , const Myclass& ob1){
~~~~
return _cout;
}