Coding/C++

    [C++] 동적 할당 배열 Dynamically Allocating Array

    정적 배열 컴파일 타임에 배열의 크기가 미리 결정되어야한다. 프로그램 실행 전에 메모리 공간을 할당 받기 때문이다. int length; int array[length];동적 할당 배열 런타임에 배열의 크기를 결정하고, 그때 그때 OS로부터 메모리 영역을 받아온다. #include using namespace std; int main() { int length; cin >> length; // 실행 중에 입력으로 결정된 크기 int* array = new int[length]; // 동적할당 for (int i = 0; i < length; ++i) // 원소 대입 cout

    [ C++ ] chapter 6.11 : 메모리 동적 할당 new와 delete

    # 프로그램에서 메모리가 할당 되는 방법들 Static memory allocation ( 정적 메모리 할당 ) 전역변수, 스태틱 변수 같이 한번 만들어지면 끝날 때까지 가지고 있는 것을 의미한다. 고정된 메모리. 자동 메모리 할당 변수를 선언하거나 정적 배열을 선언 했을 때 블록 밖으로 나가면 전부 사라지고 다시 메모리가 할당 되는 것을 의미. Dynamic Memory allocation ( 동적 메모리 할당 ) 필요할 때만 메모리를 할당받아서 사용하고 반납할 수 있다. # 스택과 힙 #include using namespace std; int main() { int array[1000000]; // 안됨. 이유는? stack -> 정적으로 할당하는 메모리는 스택에 들어감. return 0; } st..

    [ C++ Side Project ] LoginPage 회고

    # main.cpp #include #include #include using namespace std; void login(); void registration(); void forgot(); int main() { int c; cout

    [ C++ ] 파일 입출력 ifstream, ofstream, fstream

    # 스트림 ( Stream ) 이란 ? # 파일 입출력의 필요성 콘솔 창을 통해 입력과 출력의 기능을 수행한다. 이런 입출력 데이터들은 프로그램이 종료되면 사라진다. RAM이라는 휘발성 메모리에 저장되기 때문이다. 하지만 파일 입출력을 사용하면, 파일에 데이터를 저장하기에 지속되는 데이터를 만든다. # ifstream, ofstream, fstream 파일 입출력을 위한 스트림. 클래스. ifstream은 파일을 읽기만 하는 input file, ofstream은 파일을 쓰기만 하는 output file, fstream은 입출력 둘다 가능함. # 파일 스트림 사용하기 ifstream, ofstream, fstream 과 같은 입출력 스트림을 사용하기 위해서는 #include 헤더 라이브러리를 추가해줘야함.

    [ C++ ] Chapter 6.10 : C언어 스타일의 문자열 심볼릭 상수

    # 포인터는 주소가 담긴 변수를 가리키는 것이기 때문에, 데이터를 담을 수 없다. char *name = "jun jun"; 포인터 변수는 주소를 담을 수 있는 변수를 가리키는 것이다. 리터럴을 담을 수 없다. const char *name = "jun jun"; 기호적인 상수처럼 사용할 수 있다. 특별히 도와줌. int main() { const char *name = "jun jun"; const char *name2 = "jun jun"; cout

    [ C++ ] Chapter 6.9 : 포인터 연산과 배열 인덱싱

    # 포인터 연산 int main() { int value = 7; int *ptr = &value; cout

    [ C++ ] Chapter 6.8 : 포인터와 정적배열

    # 포인터와 배열 배열의 이름은 포인터 상수와 같다. int main() { using namespace std; int array[5] = { 9, 7, 5, 3, 1 }; cout

    [ C++ ] Chapter 6.7 : 포인터의 기본적인 사용법

    &변수이름 변수의 주소를 알기 위해 사용하는 address of operator 사용. # 포인터 메모리 주소를 담는 변수를 포인터라고 함. & - address of operator 포인터 : 저쪽 주소에 가면 이 데이터가 있어요. 변수 앞에 붙으면 그 변수의 주소를 알려줌. * - de - reference operator 그러면 그 주소에 직접 들여다볼게. 포인터 변수 앞에 붙으면 그 포인터 변수에 담긴 데이터를 알 수 있음. 역 참조. # 포인터 변수 선언 int main() { int x = 5; int * ptr_x = &x; return 0; } 포인터 선언은 가리킬 변수의 타입 + * operator. 포인터 변수에 담는 주소 자체는 데이터 타입과 상관없음. int * ptr_x = &x;..