동적 할당 : calloc(), malloc(), free()

황고은·2022년 8월 28일
0

📁 메모리 할당

필요할 때 메모리를 확보하고 불필요할 때 메모리를 해제해 언제든지 필요한 요소 개수의 배열을 만들 수 있다.

📝 필기

💻 CODE

  1. int형 변수 하나가 들어갈 메모리 할당하기
#include <stdio.h>
#include <stdlib.h>

int main() {
	int* x;
	x = calloc(1, sizeof(int));
	
	if(x == NULL) {
		puts("메모리 할당에 실패했습니다.\n");
	}
	else {
		*x = 57;
		printf("*x = %d\n", *x);
		free(x);                                      
	}
	
	return 0;
}
  1. 자료형이 int인 배열 동적 메모리 할당
#include <stdio.h>
#include <stdlib.h>

int main() {
int i;
	int *a;
	int na;
	printf("요소 개수 : ");
	scanf("%d", &na);
	a = calloc(na, sizeof(int));
	
	if(a == NULL)
		puts("메모리 확보에 실패했습니다.");
	else {
		printf("%d개의 정수를 입력하세요.\n", na);
		for(i = 0; i < na; i++) {
			printf("a[%d] : ", i);
			scanf("%d", &a[i]);
		}
		
		printf("각 요솟값은 아래와 같습니다.\n");
		for(i = 0; i < na; i++)
			printf("a[%d] = %d\n", i, a[i]);
		
		free(a);
	} 
	
	return 0;
}

💡 RESULT

code 1:

code 2:

profile
Snow Roller : 영차영차 눈을 굴려보아요 ⛄🚎

0개의 댓글