ݺߣ

ݺߣShare a Scribd company logo
C !
http://blog.naver.com/ruvendix
동적당의 필요성
프로그램을 사용하면서 메모리를 관리할 방법이 없을까?
정적할당으로는 사용할 메모리의 크기를 예측할 수가 없으니…
그래! 프로그램을 사용하면서
메모리를 관리하자!
http://blog.naver.com/ruvendix
동적당 함수 malloc(), free()
int *pNumList = (int *)malloc(sizeof(int) * 10); // int 10개 할당
/*
pNumList로 이런저런 작업
*/
free(pNumList);
(묵시적 형변환을 수행하지만 이렇게 명시적으로 표시해도 됨!)
메모리를 할당하고 싶다! 그렇다면 malloc()을 이용!
하지만 할당한 메모리는 반드시 해제해야 함!
메모리를 해제할 때는 free()를 이용!
http://blog.naver.com/ruvendix
얕은 복사와 깊은 복사
int *p = malloc(sizeof(int) * 1); // 4바이트 할당
int *q = p; // 얕은 복사 발생!
free(p);
free(q); // 여기서 오류 발생!
동적당된 정보를 복사하려면 무조건 깊은 복사!
깊은 복사란 복사할 정보만큼 메모리를 할당해서 복사하는 것!
http://blog.naver.com/ruvendix

More Related Content

동적당