Coding/Tip !!
-
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;} 댕글링 포..
-
strcmp와 strncmpCoding/Tip !! 2018. 8. 20. 12:39
strcmp 와 strncmp 를 사용하는 방법이 아닌 왜 사용하는가에 대한 포스팅이다. C언어에서의 기본 형식은 비교 연산으로 값의 크기를 비교한다. 하지만 배열은 메모리 주소를 값으로 가지기 때문에 비교연산시에 메모리 주소를 비교하게 된다. 그러므로 원치 않는 결과가 발생하게 된다. 예를 들어 보겠다. char example1[10] = "hi hi"char example2[10] = "hi hi" if(example1 == example2){cout
-
Syncronize 와 UnsyncronizeCoding/Tip !! 2018. 4. 10. 17:59
Syncronize란? 동기의 의미로 어떠한 루틴이 진행됨에 있어서 제어권을 바로 반납하지않고완전히 루틴이 종료되어야만 반납함을 의미한다. Unsyncronize?란? 비동기의 의미로 어떠한 루틴이 진행됨에 있어서 루틴이 완전히 종료되지 않았어도 제어권을 반납하고 다음 것을 바로바로 진행함을 의미한다. 블러킹이란?블러킹은 함수를 호출하고,해당 결과가 나올때까지 함수를 반환하지 않는다는 의미이다.. 넌블러킹이란? 넌블러킹은 결과가 나올 때까지 기다리지 않으며 함수를 바로 반환한다.