yon11b

함수 안에서 동적할당을 사용했을 때 free는 언제해야 하지? 본문

언어/C

함수 안에서 동적할당을 사용했을 때 free는 언제해야 하지?

yon11b 2022. 3. 16. 20:21
반응형
#include <stdio.h>
#include <stdlib.h>

char* ReadUserName(void){
	char* name=(char*)malloc(sizeof(char)*30);	//여기서 동적할당 해줌
	printf("name 적어 ");
	gets(name);
	return name;
}

int main(){
	char* name1;
	char* name2;
	name1=ReadUserName();
  	printf("name1: %s\n", name1);

	name2 = ReadUserName();
	printf("name2: %s\n", name2);

	printf("name1: %s\n", name1);
	printf("name2: %s\n", name2);

	free(name1);	//여기서 free!
	free(name2);
    
  	return 0;
}

출처: 윤성우 열혈 C프로그래밍

 

동적할당 해 준 함수와 연결된 main에서의 변수를 main 에서 free 해주면 됨!

728x90

'언어 > C' 카테고리의 다른 글

연결리스트  (0) 2022.05.02
달팽이 배열  (0) 2022.03.30
재귀함수 시리Z  (0) 2022.03.23
[백준] 1032번- 명령 프롬프트  (1) 2022.01.27
여러가지 문자열 표현  (0) 2021.12.24