본문 바로가기

C 언어/임베디드 C

malloc(), free()

malloc함수 -> 메모리 동적 할당(heap)
free함수 -> 메모리 반환

malloc함수를 다 쓰고 난 뒤에는 free함수를 써주는 것이 좋다.

//i부터 입력받은 수까지 아스키 코드를 출력하는 프로그램
#include<stdio.h>

int main()
{
 int i;
 char SIZE;
 char *p;

 printf("사이즈 입력 : ");
 scanf("%d", &SIZE);

 p = (char *)malloc(sizeof(char)*SIZE);

 for(i=0; i<SIZE; i++)
 {
  p[i] = i;
 }
 for(i=0; i<SIZE; i++)
 {
  printf("%c\n", p[i]);
 }
 free(p);
 return 0;
}


예를 들어 4를 입력하면 해당하는 아스키코드의 1,2,3,4가 출력
쉽게 확인하기 위해
p[i] = i; -> p[i] = i+65; 바꿔쓰면 65는 아스키코드로 A이기 때문에 A부터 출력


 

'C 언어 > 임베디드 C' 카테고리의 다른 글

리다이렉션(redirection)  (0) 2011.06.29
구조체를 사용한 파일 입출력  (0) 2011.06.29
달팽이 배열  (0) 2011.06.22
어셈블리 기본소스  (0) 2011.06.15
메모리 저장주소 보기 및 활용  (0) 2011.04.26