2018/09/17
-
const 참조자Coding/Tip !! 2018. 9. 17. 18:53
& 연산자는 변수의 주소값을 반환한다우리가 pointer를 공부할 때 한번쯤은 보게되는 &이다.&는 참조자선언을 의미한다. 변수의 주소값을 반환하려면 할당된 메모리 공간이 필요하고 그렇기 때문에 이는 상수가 아닌 변수에 사용된다.12345678#include int main(){ int num = 7; int *pointer = # int &refer = num; return 0;} int &refer = 7; -> 참조자는 이미 선언된 할당된 메모리를 가진 변수를 대상으로 사용이 가능함, 변수가 아닌 상수를 참조했음으로 잘못됨int &refer; -> 아무것도 참조하는 대상이 없음int &refer = NULL; -> NULL을 참조함으로 에러임 하지만 예외의 경우가 있다. const 참조자는 ..
-
댕글링 포인터 ( Dangling Pointer)Coding/Tip !! 2018. 9. 17. 18:28
댕글링 포인터란.. 해제된 메모리 영역을 가리키고 있는 포인터를 의미다. 이러한 댕글링 포인터가 가리키고 있는 메모리는 더이상 유효하지 않음으로 Premature free란 의미인 너무 급한 해제 또는 조숙한 해제라고 하기도 한다.메모리 해제 한 뒤에 해제된 메모리에 접근하거나 함수 호출에서 자동변수를 가리키는 포인터를 반환하기에 아래의 결과가 나타나게 된다. 12345678910111213#include int main(){ bool a = true; int *point; if(a){ int dang=5; point = &dang; } //point는 댕글링 포인터가 된다. 이유는 괄호안의 dang이 괄호를 벗어나면서 지역변수임으로 //할당된 스택영역이 제거되기 때문이다. return 0;} 댕글링 포..