본문 바로가기

realloc

[C/C++] malloc, calloc, realloc를 이용한 메모리 할당 malloc와 calloc의 함수 원형은 다음과 같다. void *malloc(size_t size); void *calloc(size_t num, size_t size); malloc는 할당할 메모리 크기를 바이트 단위로 전달받고, 할당된 공간의 값들은 바꾸지 않는다. calloc는 메모리 크기를 두 값으로 나누어 전달받으며, 할당된 공간의 값을 모두 0으로 바꾼다. 그래서 배열을 할당하고 모두 0으로 초기화해야 할 때는 calloc를 쓰면 편하다. 아래 세 문장은 int형 변수를 배열처럼 5개씩 할당하는 예이다. n = (int *)malloc( 5 * sizeof(int) ); n = (int *)calloc( 5, sizeof(int) ); n = (int *)calloc( 1, 5*sizeof(.. 더보기
C언어 :: realloc함수 realloc 동적으로 할당된 메모리를 재할당합니다. Declaration void *realloc( void *memblock, size_t size ) Return value 성공 - 새로운 메모리 영역을 가리키는 포인터 반환 실패 - NULL 포인터 반환 Parameters memblock - NULL 포인터 또는 이전에 할당한 메모리 영역을 가리키는 포인터 size - 새로 할당받을 메모리 크기(단위는 바이트) Detail descriptions realloc()를 번역할 때 "재할당" 또는 "다시 할당"이라고 하는데 많이 어색합니다. 다시 할당하는 것이 아니라 할당된 메모리 영역의 크기를 변경, 대부분은 확장하는 것입니다. 정확하게 이름을 짓는다면 extendalloc()정도가 좋겠습니다. 굳이.. 더보기