본문 바로가기

볼봇의 코딩 생활/C++

(3)
[C++] 이중 포인터 사용 예 심심해서 지식인을 돌다가, 재미있는 질문글을 발견 하고 답변을 달고 있었다. (내가 글을 열심히 썼는데, 누가 먼저 답변하고 채택됬다고 더 안올라간다 ;;;) 아까워서, 나름 포인터 이해에도 한층 도움을 준듯 하여 블로그에 남긴다. 질문의 요지는 이것이다. 여기서 왜, ip 변수의 값이 바뀌지 않느냐 인데... 그 풀이를 남기면 다음과 같다. int *ip = NULL; 에서, ip 포인터 변수는 아무것도 가르키지 않게 된다. f(ip); 에서, f 를 호출 할 때 nullptr 을 복제하여 f(int *p) 에 넘겨준다. 보다 싶이, nullptr (0) 가 넘어감을 볼 수 있다. 여기서 짚어야 하는 점은, main() 의 ip 포인터 변수가 복제되어 f() 에 넘어갔기 때문에 f() 부분의 p 와 m..
[C++] 공유체 union 과 구조체 struct C++ 에는 묶음 타입으로 class, struct, union 이렇게 세가지를 제공 하고 있다. 우리가 프로그래밍을 하면서 (필자는 특히 게임 쪽이다) 클래스와 구조체는 많이 들어와 봤을 것이라고 생각 한다. 그렇다면, union 은 무엇이고, 이름도 비슷한 구조체와는 또 뭐가 다를까? 생각해본다. 유니온? 유니콘 같네요. (이 글을 쓰면서 자꾸 유니콘이라 써서 곤란한 1人) 공유체의 정의는, "하나의 메모리 저장소를 여러개의 데이터 타입을 가진 멤버들이 공유 하는것" 이다. 구조체의 경우 각각의 멤버 변수마다 메모리를 알맞게 할당하는 반면 공유체는 하나의 메모리에 여러 변수가 사용된다. 그렇기 때문에, 당연히 해당 변수의 바이트 값이 다르면 에러가 발생하게 된다. union Data1 { intv_i..
[C++] auto 와 decltype 의 차이 최근 언리얼 공부를 하는데 C++ 의 부족함을 느껴 다시 책을 펴고 정독중이다. 그에 따라 블로그에 종종 새로 알게 되는 C++ 의 요소나 특징, 기술을 정리해볼 생각이다. 그 첫글은 auto 와 decltype 의 차이 이다. auto 는 자주 써 봤을것이라 생각한다. 만약, 변수타입이 굉장히 길다고 가정 하면.... TArray CameraComponentPointerArray; 물론 인텔리센스가 있어서 타이핑에 그리 오래걸리지는 않지만, 귀찮은건 사실이다. 이러면, 우리는 이렇게 작성한다. auto NewArray = CameraComponentPointerArray; NewArray 의 타입은 윗 코드 블럭에서 선언 했기 때문에, 우리는 추측해 볼 수 있다. 여튼, 오토타입은 굉장히 자주 쓰는데,..