1. Swapping Function
swap1 과 swap2는 동일한 기능을 합니다. (속도와 같은 세세한 사항은 다를 수 있어도 기능 자체는 동일합니다.)
2. Dynamic Memory Allocation
0) static memory
int staticArr[10];
프로그램이 종료될 때까지 메모리가 유지된다.
1) malloc의 기본형
int *dynamicArr = (int *)malloc(10 * sizeof(int));
- 위의 코드로 인해 10개의 int를 위한 memory가 할당된다. (그리고 이 array를 가리킬 pointer variable도 할당된다.)
- 중간에 메모리를 free로 해제할 수 있다.
cf> 심각한 오류가 있을 경우를 대비하는 법
if/else문으로 오류인 경우 else 부분에 위 함수를 삽입한다.
2) 1d array 동적 할당
1> C언어 vs C++
- 동적 할당 또한 프로그램 종료되면 메모리가 사라지지만 for문으로 메모리가 dangling 될 수도 있기 때문에 메모리를 쓰지 않는다면 free르 한다.
2> call by address
3> call by reference
3) 2d array 동적 할당
1> C++ 동적 할당
int **array2dB = new int*[N];
*array2db의 메모리를 할당할 **array2db를 new로 만들고
for (int i = 0; i < N; ++i) {
array2dB[i] = new int[M];
}
array2db의 원소들 메모리를 할당할 *array2db를 new로 만든다.
2> C++ 동적 할당 해제
for (int i = 0; i < N; ++i) {
delete[] array2dB[i];
}
delete[] array2dB;
array2dB = NULL;
3> call by address
4> call by reference
'알고리즘 > 알고리즘_학교' 카테고리의 다른 글
4-1강 - Euler's path(cycle) 1 (개념 정리 및 구현 아이디어) (0) | 2020.10.09 |
---|---|
3-2강 - 자료구조 & C, C++ programming 2 (Linked List management, Stack & Queue) (0) | 2020.10.03 |
2-1강 - Algorithm & Complexity 1 (알고리즘의 정의) (0) | 2020.09.15 |
1-2강 - Introduction (Graph Problem) (0) | 2020.09.03 |
1-1강 - Introduction (Euler' Graph) (0) | 2020.09.02 |