dallae_log
Home
  • 분류 전체보기 (114) N
    • Blog (82)
      • JAVA (0)
      • 생활코딩 - 자바스크립트 기본 (19)
      • 노마드코더 - 초보자를 위한 바닐라 자바스크립트 (20)
      • JAVA기반 스마트웹 개발2021 (43)
    • 🦄 (4)
    • Diary (28) N
      • 일상 (0)
      • 회고 (12) N
    • 🎁 (0)
Home
  • 분류 전체보기 (114) N
    • Blog (82)
      • JAVA (0)
      • 생활코딩 - 자바스크립트 기본 (19)
      • 노마드코더 - 초보자를 위한 바닐라 자바스크립트 (20)
      • JAVA기반 스마트웹 개발2021 (43)
    • 🦄 (4)
    • Diary (28) N
      • 일상 (0)
      • 회고 (12) N
    • 🎁 (0)
블로그 내 검색
Instagram

dallae_log

안녕 난 달래야🐣

  • Blog/JAVA기반 스마트웹 개발2021

    프로그래밍 언어 활용 part 2 - 동적 메모리

    2021. 8. 9.

    by. 고구마달랭이

    동적 메모리

    학습내용 학습목표
    ▪ 동적 메모리 이해
    ▪ 동적 메모리 활용
    ▪ 동적 메모리의 기본 개념을 파악하고 용도를 설명할 수 있다.
    ▪ 동적으로 메모리 할당이 필요한 작업에 적용할 수 있다.

    동적 메모리 이해

     

    1. 개요

    ☞ 데이터의 개수를 미리 알 수 없을 때 사용

    ☞ 처리 대상 데이터가 유동적일 때, 특히 변동 폭이 큰 경우

     

     

    2. 라이브러리 함수

    [1] 종류

    (1) 헤더파일 stdlib.h

     

    [2] malloc()

     

    [3] free()

     

    [4] calloc()

     

    [5] realloc()

     

     


     

    동적 메모리 활용


    1. 함수 기초

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	char *a;
    	int size;
    	scanf(“%d”, &size);
        
    	a = malloc( sizeof(char)*size );
     	strcpy(a,“hi”);
        
    	printf(“문자수 : %d 문자열 : \n”, strlen(a), a );
    	free(a);
    	return 0;
    }
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	int *a;
    	int size;
    	scanf(“%d”, &size);
    	a = (int *) calloc( sizeof(int), size );
    
    free(a)
    return 0;
    }

     

    2. 함수 활용

     

    Q. 문자열을 입력받고 하나의 동적 메모리에 계속 붙여서 Q 저장하는 프로그램을 작성하시오. (“end” 입력 시 입력 종료)

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
       char *a, str[20];
       a = (char *)calloc(1,1);
       if (a == NULL) printf(“Fail Allocation”);
    	while(1){
    		 gets(str);
     		if( !strcmp(str,“end”) )
     		break;
     		a = (char *)realloc(a,strlen(str)+1);
    		 strcat(a,str);
     }
     printf(“\n%s”, a);
     
     free(a);
     return 0;
    }

     

     


     

     

    학습정리

     

    1. 동적 메모리 이해

    ▪ 동적 할당은 실행 시에 할당되는 메모리임

    ▪ 동적 할당은 힙 영역에 할당함

    ▪ 동적 할당은 실행 시 크기가 정해지는 데이터 처리에 효과적임

    ▪ 동적 할당된 공간은 프로그래머가 해제해야 함

     

    2. 동적 메모리 활용

    ▪ malloc, calloc은 동적으로 메모리를 할당하는 라이브러리 함수임

    ▪ calloc은 동적 할당 후 0으로 초기화

    ▪ free는 동적 할당된 메모리를 해제함

    ▪ realloc은 동적 메모리의 크기를 변경하여 할당하는 것이 가능함

    'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글

    프로그래밍 언어 활용 part 2 - 도서관리 시스템 고도화(동적메모리)  (0) 2021.08.09
    프로그래밍 언어 활용 part 2 - 함수 포인터  (0) 2021.08.09
    프로그래밍 언어 활용 part 2 - 도서관리 시스템 고도화(라이브러리 적용)  (0) 2021.08.09
    프로그래밍 언어 활용 part 2 - 문자열 비교 검색 라이브러리  (0) 2021.08.09
    프로그래밍 언어 활용 part 2 - 문자 분류 데이터 변환 관련 라이브러리  (0) 2021.08.09

    댓글

    관련글

    • 프로그래밍 언어 활용 part 2 - 도서관리 시스템 고도화(동적메모리) 2021.08.09
    • 프로그래밍 언어 활용 part 2 - 함수 포인터 2021.08.09
    • 프로그래밍 언어 활용 part 2 - 도서관리 시스템 고도화(라이브러리 적용) 2021.08.09
    • 프로그래밍 언어 활용 part 2 - 문자열 비교 검색 라이브러리 2021.08.09
    맨 위로
전체 글 보기
  • Github
  • Portfolio
  • Mail
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
고구마달랭이
내 꿈은 억만장자

티스토리툴바