본문 바로가기
윤성우 열혈강의 C 정리

[ C 열혈강의 ] 메모리의 동적 할당

by 어린왕자1234 2022. 6. 29.

## 포인터를 반환해서  문제가  발생된 경우

1) 전역변수와 지역변수로 해결이 되지 않는 상황

 

 

2) 혹시 전역변수가 답이 된다고 생각하는가?

 

 

3) 문자열 반환하는 함수를 정의하는 문제의 해결

 

 

# stdlib.h 필요

#include <stdio.h>
#include <stdlib.h>

char * ReadUserName(void)
{
	char * name = (char *)malloc(sizeof(char)*30);
	printf("What's your name? ");
	gets_s(name,30);
	return name;
}

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

	printf("again name1: %s \n", name1);
	printf("again name2: %s \n", name2);
	free(name1);
	free(name2);
	return 0;
}

 

힙영역의  메모리 공간 할당과 해제

 

 

malloc 함수의  반환형이  void형  포인터인  이유

 

 

힙 영역으로의 접근

 

 

free 함수를 호출하지 않으면?

 

 

calloc & realloc

 

 

realloc 함수의 보충 설명