Language

    [C/C++] main은 알겠는데.. wmain, _tmain 는 무엇일까요?

    Main 이란? int main(int argc, char* argv[]) -세번째 입력 인수가 있긴하지만 잘안쓰죠main은 무엇일까요? 다들 아시다시피 main 이라는 특수함수는 모든 c및 c++ 프로그램이 실행이 시작되는 지점입니다. int wmain(int argc, wchar_t* argv[])그럼 wmain은 무엇일까요? msdn에 따르면 "유니코드 프로그래밍모델을 따르는 코드를 작성하는경우 main 의 와이드 문자버전인 wmain을 사용할 수 있습니다" 라고 합니다. int _tmain(int argc, _TCHAR *argv[]) _tmain은 _UNICODE가 정의되지 않은 한 main으로 확인됩니다. _UNICODE가 정의된 경우에는 _tmain이 wmain으로 확인됩니다. 유니코드가 정..

    [C/C++] 동적 메모리 할당 malloc(), calloc(), realloc(), free()

    메모리에서 스택영역, 데이터영역, 힙영역 이런 말을 한번쯤은 들어 보셨을겁니다. 이 메모리들은 각각 특성이 있습니다. 일단 메모리 그림을 한번 보고 가시죠. 메모리가 이렇게 생겼구나.. 정도만 알고 가시면됩니다 ㅇㅅㅇ 정적메모리는 보통 스택영역, 데이터영역을 의미합니다. 메모리 크기는 컴파일할 때 결정되며 실행 도중에 해제되지 않고, 프로그램이 종료할 때 알아서 운영 체제가 회수합니다. C 언어에서 정적 할당된 메모리는 스택에 위치하기 때문에 할당 받을 수 있는 메모리에 제약을 받습니다. 말그대로 컴파일 시 결정된 크기만큼 그 딱그만큼만 쓸 수 있다는거죠. 실행중에 변경이 불가능합니다. 그와 반대로 동적메모리는 프로그램 실행 시간(런타임) 중에 프로그래머가 동적으로 메모리를 할당 할 수 있습니다. 한마디..

    [C/C++]공유메모리 함수 shmget(),shmat(),shmdt(),shmctl()

    해커스쿨의 ftz 워게임을 풀던중 공유메모리에 관한 문제가있었다.. 처음봤을때는 이게뭐지... 하다가 키워드 중심으로 검색을 해봤더니 공유 메모리를 생성하고 관리하는 함수들이 있었다. 넘나 어려운것 ㅡ.ㅡ;; 공유메모리란 한마디로 여러 프로세서들이 함께 사용하는 메모리 이다. 프로세스들이 메모리 자체를 공유하게 됨으로써 데이터복사와 같은 오버헤드가 발생하지않아서 속도가 빠르다고한다. 이함수들을 쓰기위해서는 sys/ipc.h , sys/shm.h 두 헤더파일을 include 해준다. 동작방식은 간단하더라.. shmget() 으로 공유메모리를 구별하는 key값과 크기, 옵션을 부여하고 공유메모리를 생성한다. shmat() 으로 프로세스에 메모리 세그먼트를 붙이고 , shmctl() 함수로 공유메모리를 제어한..