본문 바로가기

전체 글

(104)
[TIL 15장] 파일 입출력(feat. errno_t, 경로) 및 지원함수 텍스트 모드(.txt) & 바이너리 모드(.dat) 오늘의 TIL 목차 (22.08. 12) 파일 입출력 파일 입출력 지원 함수 바이너리 입출력 지원 함수 파일 입출력 [ 파일 입출력 ] fopen_s(FILE** _Stream, char const* _FileName, char const* _Mode); fopen_s(파일 포인터의 주소(파일 핸들), 파일 경로, 모드); FILE* fp = nullptr; errono_t fInput = fopen_s(&fp, "..\C220812\Text.txt", "wt"); // C220812 폴더 안에 텍스트 모드의 쓰기 파일 Text.txt 생성 // errono_t 자료형 fInput에 대입하는 이유는 파일 생성 성공 여부 확인을 위해서 ▶ errono_t 자료형 : 다양한 함수의 반환 값으로 사용되며 값이..
[TIL 14장] 메모리 함수, 콘솔/파일 입출력 함수[text] 오늘의 TIL 목차 (22.08. 11) 메모리 함수 ( memset, memcpy, memmove ) 입출력 ( feat. stream ) 메모리 함수 1. memset ( = ZeroMemory ) 2. memcpy 3. memmove [ 메모리 함수 ] : 메모리 대 메모리로 단위로 데이터들을 변경하는 기능의 함수 [ memset ] = [ ZeroMemory ] : 메모리 초기화 함수 #include // ZeroMemory 함수 사용 시 헤더파일 포함 memset(void* _Dst, int _Val, size_t _Size); //(초기화하는 메모리 공간의 주소 값, 어떤 값으로 초기화 할 것인가, 얼마만큼의 메모리 크기를 초기화 할 것인가) ZeroMemory(void* _Dst, size_..
[TIL 13강] 열거체, C언어 동적할당(feat. Heap) 오늘의 TIL 목차 (22.08. 11) 열거체 ( enum ) 동적 할당 ( C언어 : malloc(), calloc(), free() ) 동적 할당 ( C++ : new , delete() ) 열거체 [ 열거체 ( enum ) ] : 상수를 사용자가 정의한 이름으로 열거하는 것 enum 열거형이름 { 열거체0 열거체1 ... }; ■ 기능 / 주의 열거체는 원소의 개수와 상관없이 4byte 크기를 갖는다. 열거체는 초깃값을 할당할 수 있다. 열거체는 상수로, 사용자 정의한 이름의 상수이다. 열거체는 0부터 순서대로 +1씩 증가하며, 초기화 시 초기화된 값에 이어서 +1이 된다. switch문 등에서 상수를 사용할 때 무엇을 뜻하는지 명확히 표기하고 싶을 때 주로 사용된다. 오류를 표기하기 위해서도 주..
[TIL 12장] 문자열 함수, 구조체(feat. 포인터 사용), 공용체 오늘의 TIL 목차 (22.08. 10) 문자열 함수 ( strcpy_s, strlen, strcat_s, strcmp )구조체, 구조체 배열 ( struct )공용체 ( union )문자열  함수1. 문자열 복사     2. 문자열 길이     3. 문자열 결합     4. 문자열 비교[ strcpy_s() ]: 문자열 복사 함수 int strcpy_s(char* 복사본, unsigned int 복사본 메모리 공간의 크기, char const* 복사할 문자열 / 주소);char szName[32] = "milk";char szTemp[32] = "dainn";strcpy_s(szName, sizeof(szName), szTemp); // 메모리 공간은 들어갈 문자열의 크기보다 크고 복사본이 저장될 ..
[TIL 11장] 문자열, 함수 포인터 오늘의 TIL 목차 (22.08. 08) 문자열 함수 포인터 문자열 [ 문자열 ] : 문자열을 배열 / 포인터 형태로 저장 [문자 배열] 자료형 변수명[크기] = {}; charszName[6] = { 'j', 'u', 's', 'i', 'n'}; // 문자열은 끝에 널 공간도 줘야함 (남겨둬!) [문자열 상수] 자료형 변수명[크기] = " "; char szName[6] = "jusin"; [문자열 상수 배열] 자료형* 변수명[문자열 갯수] = {}; char* pArray[3] = {"jusin", "Game", "Academy"}; [포인터] 자료형* 포인터명 = " "; char* pName = "jusin"; ※ 포인터를 이용한 문자열 대입은 포인터가 임시 저장 장치에 "jusin"을 저장한 뒤..
[TIL 10장] 2차원 배열 오늘의 TIL 목차 (22.08. 05) 2차원 배열 2차원 배열 [ 2차원 배열 ] : 행 열 개념의 배열 int iArray[2][3] = { 1, 2, 3 }, { 4, 5, 6 }; intiArray[2][3] = { 0열 1열 2열 { 1, 2, 3 },// 0행 { 4, 5, 6 }// 1행 }; intiArray[2][3] = { {1, 2}, {0} }; // 초기화 안된 부분은 0으로 채움 ■ 기능 / 주의 2차원 배열은 포인터(이중 포인터 포함)를 사용할 수 없다. int iArray[2][3]은 행을 기점으로 배열의 개수 3개를 갖는 같은 이름 iArray 2개가 겹쳐있는 것이다. iArray[0]은 겹쳐있는 2개의 배열 중 0번째 배열의 시작 주소를, int iArray[1]은 1번..
[TIL 9장] 이중 포인터 개념, 배열, 디버깅 오늘의 TIL 목차 (22.08. 04) 이중 포인터배열디버깅이중 포인터이중 포인터포인터 변수의 주소를 저장하기 위한 포인터 자료형** 포인터변수명;int iA = 10; int* p = &iA; // 포인터 p는 iA의 주소값을 저장int** pp = &p; // 이중 포인터 pp는 포인터 p의 주소값을 저장 ※ *pp = *(&p) = p: 이중 포인터 pp의 값은 포인터 p주소가 담고 있는 값이기 때문에 0x0 즉, p ( = &iA) 이다. 배열배열동일한 특성을 가진 데이터들을 규칙적인 메모리 공간에 저장하는 문법 자료형 배열의 이름[배열의 개수] = { } ;int iArray[3] = { 10, 20, 30 };int iArray[5] = {}; // 초기화 값이 선언된 배열..
[TIL 8장] 포인터, 상수 포인터 오늘의 TIL 목차 (22.08. 03) 포인터 ( feat. 포인터 연산자 ' * ', ADDRESS 연산자 ' & ' )상수 포인터포인터포인터주소값을 저장하는 용도의 변수자료형* 변수명;[포인터 선언 방식]int* p; // 주로 사용int *p;int * p;[포인터 0 초기화] // 포인터는 0 대신 nullptr로 선언해주기로 약속int* p = nullptr; // 주로 사용int* p = NULL; int* p = 0xffffffff; // 32비트 기반 프로그래밍에서 주소 값 중 최소는 0번지 최대는 0xffffffff번지이다.  ■ 포인터 사용 이유 / 주의- 포인터는 주소를 저장하는 변수기 때문에 &를 이용하여 주소값을 받아야함- 포인터 사용 이유는 주소값을 이용해 메모리 공간에 접근해..