C
동적메모리할당함수 호출하기(방법2 : 더블 포인터를 이용한 call by address)
GOD03219
2017. 12. 29. 20:54
#include<stdio.h>
#include<stdlib.h>
#pragma warning (disable:4996)
void memoryalloc(int **pp);
void input(int*p);
void output(int*p);
void del(int*p);
void main()
{
int *p;
memoryalloc(&p); // 포인터의 주소를 넘겨주기
input(p);
output(p);
del(p);
}
void memoryalloc(int**pp)
{
*pp=(int*)calloc(1,sizeof(int));
}
void input(int*p)
{
printf("숫자를 입력하시오.(입력함수)\n");
scanf("%d",p);
}
void output(int*p)
{
printf("입력한 숫자가 나옵니다.(출력함수)\n");
printf("%d\n", *p);
}
void del(int*p)
{
free(p);
}
/*
동적메모리 할당 함수로 void 함수를 썼기 때문에 return을 하지 않는다. 대신 다차원포인터(더블포인터)사용 해서 포인터가 동적메모리를 계속 잡고 있는다.
*/