본문 바로가기

지난 학기들의 기록59

[C실습] 동적할당 예제 - realloc함수를 쓰지않고 배열의 크기 바꾸기 realloc함수를 쓰지않고 배열의 크기를 변경하기 realloc함수를 쓰지않고 malloc함수만을 이용해서 배열의 크기를 조건에 맞게 변경하는 프로그램을 작성하는 예제를 풀이해보겠습니다. 예제1. 초기배열의 크기를 넘어선 입력시 배열의 크기를 증가시켜라 #pragma warning(disable:4996) #include #include #include void size_add(int* s, int* arr); int main() { //size가 5인 배열 생성 int* Np; int i = 0; int size = 5; Np = malloc(sizeof(int) * size); scanf("%d", &Np[0]); if(Np[0]!=-1){ for(i=1;;i++) { scanf("%d", &Np[.. 2020. 8. 22.
[C실습] 동적할당예제 - 2차원 배열 활용 동적메모리 할당예제 - 2차원 배열 2차원 배열에 메모리를 할당하기 위해서는 이중포인터를 활용해야합니다. 1차원 배열의 메모리 할당과는 다르게 두가지 스텝으로 분류해서 이 과정을 이해할수 있습니다. 먼저 2차원 배열의 행과 열을 row (행), column(열)로 두었을때 선행되는 작업은 row 행만큼 정수형 포인터의 메모리를 할당하는 것입니다. d_Array= malloc(sizeof(int *) * row) // 1차원 배열을 row개 만큼 메모리 할당한다고 이해할수 있습니다. 그리고 할당된 row개의 메모리 공간에 가로길이 col 만큼(열에 해당) 메모리를 할당해줍니다. 이 각각은 1차원 배열이므로 기존에 알고있던 배열의 메모리할당을 떠올리면 쉽습니다. for(int i=0;i행 , column -.. 2020. 8. 21.
[정수론] RSA 공개키(RSA public key) 암호 알고리즘 보호되어 있는 글 입니다. 2020. 7. 15.
[컴퓨터 네트워크] 라우팅 알고리즘 - 다익스트라 알고리즘(Dijkstra Algorithm) 컴퓨터 네트워크를 수강하던 중에 "라우팅 알고리즘"에 대해서 배우게되었습니다. 라우팅 알고리즘은 네트워크계층의 기능을 제어평면과 데이터평면으로 나누어서 설명할때, 제어평면의 기능입니다. 한마디로 종단시스템간의 전체적인 데이터 패킷 전송과정에서 라우터->라우터로 이어지는 경로를 어떻게 가장 효율적으로 구성할까에 대한 알고리즘적 논의입니다. 여기서 효율적이라 함은 cost 즉 비용이 적고, fastest 가장 빠르며 , least congested 혼잡이없는 경로를 말합니다. 또한 라우터의 측면에서는 전송에 필요한 bandwidth나 지연되는 정도를 cost 값이라고 부르기도 합니다. 이러한 주제에 있어서 핵심질문은 당연히 두 host간의 패킷 전송 경로에서 가장 least cost path를 발견해내는 것.. 2020. 6. 15.