목록분류 전체보기 (188)
승쨩개발공부
입출력(IO) 입력과 출력. 주체에 따라 입출력의 위치가 바뀐다. 프로그래밍에서 주체는 cpp파일, 실행파일이 주체가 된다. 입력 주체(파일)가 데이터를 받아오는 것. 출력 주체(파일)가 데이터를 내보내는 것. 입력 장치 : 키보드, 마우스 등 출력 장치 : 모니터, 스피커 등 스트림(Stream) 가상의 통로. 프로그램과 키보드, 프로그램과 모니터는 서로 연결되어있지 않다. 이러한 장치들을 서로 연결시켜주는 것이 스트림(통로)이다. 표준 스트림 stdin : 표준(std) 입력(in) 스트림(stream). 기본 키보드 대상 stdout: 표준 출력(out) 스트림. 기본 모니터 대상 stderr: 표준 오류(err) 스트림. 기본 모니터 대상 버퍼(Buff) 스트림 중간에 있는 메모리 블록 데이터 송..

메모리 구조 컴퓨터의 운영체제는 프로그램 실행을 위해서 메모리 영역을 제공한다. 메모리 영역의 구조는 CODE, DATA, HEAP, STACK 4가지 영역으로 이루어져 있다. CODE 영역 코드 영역은 말 그대로 실행하는 프로그램의 코드가 저장되는 영역이다. 영어로 텍스트 영역이라고도 불린다. CPU 는 이 코드 영역에 저장된 명령어들을 처리하게 된다. (함수 코드는 코드영역의 바이너리 형태로 저장된다) DATA 영역 데이터 영역은 프로그램의 전역 변수와 정적 변수(static 변수)가 저장되는 영역이다. 메모리의 할당 시점은 프로그램 시작시 할당되며, 프로그램 종료시 소멸 된다. HEAP 영역 힙 영역은 프로그래머가 직접 메모리를 관리할 수 있는 영역이다. 프로그래머가 원하는 시점에 메모리를 할당할 ..
동적할당 사용자가 원할 떄 메모리에 등록하고, 사용자가 원할 떄 메모리에서 해제하는 것. Heap 영역에 등록이 된다. malloc() void* : 할당할 메모리의 시작 주소를 반환 -> 단, 시작 주소부터 몇 bytes를 사용할 것인지, 어떤 데이터로 다룰 것인지 모르는 상황이다. -> 이러한 문제를 해결하기 위해 형 변환을 진행해야만 한다. size_t _size : Heap 영역에 몇 byte 크기로 메모리를 예약할 것인지 전달. Heap 영역에 메모리를 할당 malloc(); Heap 영역에 4bytes만큼 메모리를 할당 malloc(4); // Heap 영역에 4Bytes만큼 메모리를 할당. Heap 영역에 4bytes만큼 메모리를 할당해줘 이후, 반환되는 시작 주소를 int*형으로 바꿔줘 형..
텍스트 RPG #include using namespace std; typedef struct tagInfo { char szName[16]; int iAtt; int iMaxHp; int iHp; }INFO; // 플레이어 정보 구조체 생성 INFO* Create_Object(char* _pName, int _iAtt, int _iMaxHp); // 오브젝트를 만드는 함수 INFO* Select_Player(); // 플레이어를 선택하는 함수 void Progress(INFO* _pPlayer); // 전체 흐름 함수 void Render(INFO* _pPlayer); // 플레이어 정보 함수 int Combat(INFO* _pPlayer, INFO* _pMonster); // 전투 함수 // 메인 함..
구조체 사용자 정의 자료형 -> 사용자가 자료형을 만들어서 사용하는 것. -> 단, 몇 바이트 자료형인지 어떤 형식으로 읽을 것인지는 설정할 수 없다. 데이터 덩어리, 데이터 집합 ->필요한 변수들을 하나로 묶어 놓은 것. 구조체 정의 컴파일러에게 이러한 자료형을 만들어서 사용하겠다 알려주는 것. struct 자료형이름 { 멤버 변수 선언; 멤버 변수 선언; } -> // 구조체 정의 struct tagGrade { char szName[20]; int iKor; int iEng; int iMath; int iTotal; float fAver; int point; }; 구조체 초기화 배열과 비슷한 형태를 가진다. 1. 쓰래기 값 초기화 struct tagGrade tGrade; 2. 모든 멤버 변수 0으..

문자열 함수 문자를 다루는 함수 1. 복사 strcpy_s(1, 2, 3) 1. 복사 받을 대상의 시작 주소 2. 몇 바이트 작업할 것인지 전달 3. 복사 할 대상의 시작 주소 2. 결합 strcat_s(1, 2, 3) 1 : 결합 받을 대상의 시작 주소 2 : 몇 바이트 작업할 것인지 전달 3 : 결합 할 대상의 시작 주소 3. 길이 strlen() 4. 비교 strcmp(비교대상 1, 비교대상 2) 두 문자열이 같으면 0을 반환, 다르면 0이 아닌 값을 반환 메모리 함수 메모리 단위로 작업(초기화 또는 복사)를 수행하는 함수 1. 초기화 함수 memset(1, 2, 3) 1 : 초기화할 메모리의 시작 주소 2 : 초기화할 데이터(값) 3. 시작 주소부터 몇 바이트 공간을 초기화할 것인지 전달 주의사항..