Skip to main content

Command Palette

Search for a command to run...

#memory-management

Articles tagged with #memory-management

  1. [자료구조] 연결 리스트: 도입

    복잡한 프로그램을 구현하다 보면 기본적인 포인터 구조만 이용해서 메모리를 관리하기에는 다소 번거로울 때가 많다. 만약 메모리를 좀 더 효율적으로 관리하고 사용할 수 있다면 어떨까? 이를 위해 데이터 구조의 개념과 연결리스트에 대해 알아보자. 데이터 구조는 우리가 컴퓨터 메모리를 더 효율적으로 관리하기 위해 새로 정의하는 구조체이다. 일종의 메모리 레이아웃, 또는 지도라고 생각할 수 있다. 데이터 구조중 하나인 연결 리스트에 대해 알아보자. ...

    Jun 12, 20242 min read7
    [자료구조] 연결 리스트: 도입
  2. [메모리] 파일 쓰기

    get_int나 get_string처럼 사용자에게 입력을 받는 함수는 어떻게 구현되어 있었을까? 앞서 배운 메모리 교환, 스택의 정의를 잘 복습한 후에 두 함수를 직접 구현해보고, 더 나아가서 파일에 출력해보는 방법도 알아 보자. 지난번에 배운 메모리 구조에 대해 다시 한 번 살펴보자 머신 코드 영역에는 우리 프로그램이 실행될 때 그 프로그램이 컴파일된 바이너리가, 글로벌 영역에는 프로그램 안에서 저장된 전역 변수가, 힙 영역에는 ma...

    Mar 31, 20242 min read3
    [메모리] 파일 쓰기
  3. [메모리] 메모리 교환, 스택, 힙

    각각 사이다와 콜라가 들어있는 컵 두 개가 있다고 할 때, 사이다와 콜라를 각각 다른 컵으로 바꿔 담고 싶으면 어떻게 해야 할까? 아마 교환을 도와줄 수 있는 새로운 컵이 잠시 필요할 것이다. 그렇다면, 메모리에 저장된 값들을 교환할 때도 이와 비슷하게 할 수 있을까? 다음 코드를 보자 #include <stdio.h> void swap(int a, int b); int main(void) { int x = 1; int y...

    Mar 30, 20242 min read3
    [메모리] 메모리 교환, 스택, 힙
  4. [메모리] 메모리 할당과 해제

    메모리를 할당한 후에 저장한 값이 필요가 없어지고 나서는 어떻게 해야 할까? 유한한 메모리를 효과적으로 관리하기 위해 우리가 프로그램을 작성하며 할당한 많은 메모리들을 어떻게 관리해야 하는지에 대해 알아보자. malloc 함수를 이용하여 메모리를 할당한 후에는 free라는 함수를 이용하여 메모리를 해제해줘야 한다. 그렇지 않으면 메모리에 저장한 값은 쓰레기 값으로 남게 되어 메모리 용량의 낭비가 발생하게 되기 때문인데, 이러한 현상을 메모리...

    Mar 29, 20242 min read91
    [메모리] 메모리 할당과 해제
  5. [메모리] 문자열 비교

    두 문자열이 같은 내용을 담고 있는지는 어떻게 비교할 수 있을까? 문자열이 저장되어 있는 방식을 들여다보며, 우리가 배운 문자열 자료형을 사용해서 바로 직접적으로 비교가 가능한지 알아보자. #include <stdio.h> int main(void) { char *s = "EMMA"; printf("%p\n", s); // "E"의 메모리 주소 } 이 코드를 실행하면 s라는 포인터의 값을 출력할 것이다. 즉,...

    Mar 18, 20242 min read15
    [메모리] 문자열 비교