목록분류 전체보기 (156)
승쨩개발공부
동적할당 사용자가 원할 떄 메모리에 등록하고, 사용자가 원할 떄 메모리에서 해제하는 것. 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. 시작 주소부터 몇 바이트 공간을 초기화할 것인지 전달 주의사항..
배열 동일한 특성(자료형)을 가지며 일정한 규칙(연속된 메모리)에 의해 나열되있는 데이터 집합. -> 변수를 여러게 만드는 방법 배열 선언 변수 선언 시 변수명 뒤에 []를 붙이면 배열을 만든다. 자료형 변수명 [배열의 수] int iArr[5]; -> int 자료형의 변수를 총 5개 만드는 것. int(4bytes) 자료형으로 공간을 5개 만들었으니 20bytes크기가 나온다. 배열의 초기화 = {} 쓰레기 값 초기화 5개의 변수가 모두 쓰레기 값으로 초기화가 진행된다. int iArr[5]; 선언과 동시에 0 초기화 5개의 변수가 모두 0으로 초기화가 진행된다. int iArr[5] = {}; 5개의 변수가 순차적으로 1, 2, 3, 4, 5로 초기화가 진행된다. int iArr[5] = { 1, 2..
포인터 저장하는 값이 주소인 변수이다. 다른 말로 "간접 참조" 라고도 한다. (프로그래밍에서 참조라는 말은 접근을 뜻한다.) 포인터는 변수에 직접적으로 접근하지 않고, 주소를 통해 접근을 한다. 주소 확인 메모리에 등록된 변수명 앞에 어드레스(&) 연산자를 붙여주면 주소를 확인할 수 있다. 포인터 선언 자료형과 변수명 사이에 에스크리터(*)를 추가하면 포인터 변수 선언이 된다. 포인터 변수 초기화 다음과 같이 포인터를 선언하게 될 경우 쓰레기값이 초기화가 되버린다. 쓰레기 값 초기화? -> ptr이라는 변수에 쓰레기 값으로 초기화가 진행된다. -> 초기화된 값을 주소로 읽으면 어디를 가리킬지 모르는 상황이 발생 -> 만약, 해당 주소가 운영체제를 가동하는데 중요한 위치를 가리킨다면? -> 그리고 그 값..