2-1장 기본 자료구조 - 배열 : 메모리 할당, 동적 객체 (3/10)

2024. 4. 12. 18:10 · Algorithm/[C] Do it! 자료구조와 함께 배우는 알고리즘

 

해당 내용은 Do it! 자료구조와 함께 배우는 알고리즘 입문 C 언어 편 (전면 개정판)을 기반으로 작성되었습니다.


2-1장 기본 자료구조 - 배열 : 메모리 할당, 동적 객체 (3/10)

// int형 객체를 동적으로 생성하고 해제
#include <stdio.h>
#include <stdlib.h>

int main(void){
    int* x = calloc(1, sizeof(int));    // int형 포인터에 메모리 할당
    if (x == NULL)
        puts("메모리 할당에 실패했습니다.");
    else {
        *x = 57;
        printf("*x = %d\n", *x);
        free(x);                        // int형 포인터에 할당한 메모리 해제
    }

    return 0;
}

 

 

메모리 확보 함수 :  malloc()

 

메모리 확보 함수 : calloc()

- 호출한 calloc 함수는 지정된 (1 *sizeof(int) 바이트)크기의 메모리를 힙 영역에 할당하고, 할당한 메모리의 첫 번째 주소를 반환한다. 

 

메모리 해제 함수 : free()

- 프로그램을 실행하는 도중에도 원하는 시점에 변수를 생성하거나 제거할 수 있다.

- 해제한 영역의 크기를 자동 계산한다.

- free 함수 호출 시, 인수를 부여할 필요가 없다. 

 

calloc(), malloc()와 free() 함수의 관계성

- 힙이라는 특별한 '빈 공간'에 기억 장소를 확보한다. 

- 이때 확보한 메모리가 불필요하면 그 공간을 해제해야한다. 

- calloc() malloc() 함수 선언 시, 무조건 free() 함수로 메모리 해제해야한다.  ( 해제시 객체도 같이 사라진다)

 

동적 배열 / 객체 생성

 

객체 생성과 해제

- Type형의 단일 객체 *x의 생성과 해제

Type *x = calloc(1, sizeof(Type)); free(x);

 

- 요소가 Type형이고, 요소개수가 n인 배열 a의 생성과 해제

Type *a = calloc(n, sizeof(Type)); free(a);

 

int **p = calloc(10, sizeof(int *)); free(p);

 

728x90

'Algorithm > [C] Do it! 자료구조와 함께 배우는 알고리즘' 카테고리의 다른 글

2-1장 기본 자료구조 - 배열 : 기수변환 (5/10)  (0) 2024.04.14
2-1장 기본 자료구조 - 배열 : 포인터와 배열 (4/10)  (0) 2024.04.13
2-1장 기본 자료구조 - 배열 : 메모리구조 (2/10)  (0) 2024.04.12
2-1장 기본 자료구조 - 배열 : 자료구조, 배열 (1/10)  (1) 2024.04.12
Do it 알고리즘 C언어편 - 1장 연습문제 40p, 42p (ing)  (0) 2024.04.12
'Algorithm/[C] Do it! 자료구조와 함께 배우는 알고리즘' 카테고리의 다른 글
  • 2-1장 기본 자료구조 - 배열 : 기수변환 (5/10)
  • 2-1장 기본 자료구조 - 배열 : 포인터와 배열 (4/10)
  • 2-1장 기본 자료구조 - 배열 : 메모리구조 (2/10)
  • 2-1장 기본 자료구조 - 배열 : 자료구조, 배열 (1/10)
따`ddah
따`ddah
    250x250
  • 따`ddah
    IT's ddah
    따`ddah
  • 관리    글쓰기
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Projects
        • Auto Post : SNS 자동 업로더
      • kmooc
        • 기계 학습 기반의 데이터 공학
      • Algorithm
        • [C] Do it! 자료구조와 함께 배우는 알고리..
        • 알고리즘 스터디
        • 코딩 테스트
      • Basic
        • 운영체제 OS
        • 컴퓨터구조
        • 소프트웨어공학 (UML)
      • DBMS
        • 데이터베이스 이론
        • MySQL
        • Oracle SQL
        • BigQuery
        • Yammer
      • Programming
        • Python
        • C
        • Java
        • React
        • JavaScript
        • R
      • 빅데이터
      • AI
        • 멀티미디어응용
        • 머신러닝
        • 인공지능
      • 자격증
        • Azure DP-900
        • Azure AI-900
        • SQLD
        • CSTS
      • 대외활동 및 인턴
        • 인턴
        • LG Aimers
        • Outta
        • 빅데이터 분석 학회 BDA
        • 세계시민교육연구소 청년단 GYIA
      • Tool
        • Git
        • IDE
      • 도서
        • IT
      • 그 외
        • 단축키
        • ✞
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    js
    리액트
    대학생학회
    오블완
    print(f"")
    취업
    input
    오라클SQL
    주석
    취업준비
    jsx
    자료형
    python
    dbms
    파이썬 챗봇 만들기
    이름나이
    AI역량검사
    Oracle
    파이썬
    react
    자바스크립트
    sql
    대외활동
    Py
    티스토리챌린지
    파이썬{}
    javascript
    빅데이터분석
    BDA학회
    importturtle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
따`ddah
2-1장 기본 자료구조 - 배열 : 메모리 할당, 동적 객체 (3/10)
상단으로

티스토리툴바