반응형

C++ 15

더블 포인터란 무엇인가? (double point)

더블 포인터란 무엇인가? 말 그대로 포인터연산자인 * 표시가 2개 붙어 있는 것이다. 예를 들어 int **ptr; 이정도로 해두면 될것이다. 더블 포인터와 싱글 포인터 차이점...........?? 싱글포인터는 해당 변수의 주소값을 지니고 있다. 또한 싱글 포인터 역시 포인터 변수이다. 그러므로 이 싱글 포인터 변수 역시 4byte의 메모리 공간을 할당받는다. 이 실글 포인터가 할달 받은 공간을 가르키는것이 더블 포인터이다. 즉 싱글 포인터의 주소값을 가지고 있는 것이다. 예를 들어int val=1;int *ptr1 = &val; -> 싱글 포인터int **ptr2 = &ptr1; -> 더블 포인터:: ptr1은 val의 주소값을 지니고 있고 ptr2는 ptr1의 주소값을 지니고 있는 것이다. ptr2..

C, C++ 2019.01.23

포인터와 const

포인터와 const 키워드포인터를 const키워드로 상수화 시킨다는 것은 2가지 의미를 가진다.1.포인터가 가르키는 변수의 상수화 ex1) int a =10; const int *p = &a; *p =30; //error a = 30; //ok 위의 예제를 보면 const키워드의 위치가 int 앞에 나와있다. 이는 *p가 a라는 변수를 상수화한다는 의미를 나타낸다. p라는 포인터가 봤을때 변수 a가 상수처럼 보인다는 뜻이다. 위 코드를 보면 *p =30; 는 error 메세지가 나오고 a = 30 는 통과된다. 이는 변수 a가 지니는 값을 상수화 한다는 것이 아니라 위에 말한 변수 a를 상수화 하기 때문에 그렇다. 즉 a값을 변경하는 것을 막는 것이 아니라 포인터를 통해 접근 하였을 때만 막는것이다.2...

C, C++ 2019.01.23

gcc의 undefined reference to '__gxx_personality_v0' 에러

gcc로 C++ 파일을 컴파일하면 "undefined reference to '__gxx_personality_v0'"라는 에러가 발생하는데 이는 gcc가 C++용 컴파일러가 아니라 gcc(Gnu C Compiler)의 약자가 말해 주듯이 C 언어용 컴파일러이기 때문에 발생하는 에러이다. gcc 대신 g++ 를 사용하면 문제를 해결할 수 있다. ----------------------------------------------------------------------------------- ex) cc a.cpp

C, C++ 2019.01.22