주요 차이점 : 'Calloc'과 'Malloc'은 C 프로그래밍 언어의 동적 메모리 할당 성능을 나타냅니다. 'calloc'은 할당 된 메모리를 0으로 초기화하지만 'malloc'은 초기화하지 않습니다.
'calloc'과 'malloc'은 모두 표준 라이브러리 함수입니다.
구문은 다음과 같습니다.
void * calloc (number_of_blocks, size_of_each_block_in_bytes);
여기서 'void'는 값을 반환하지 않는 일반적인 C 함수입니다. 첫 x 째 인수의 요소 수는 두 x 째 인수에 대한 요소의 크기 (바이트)를 지정합니다. 주소는 파티션 분할이 성공한 후 리턴되며 그렇지 않으면 함수의 실패시 NULL이 리턴됩니다.
구문은 다음과 같습니다.
void * malloc (size_in_bytes);
특히 주소를 일반적인 방식 (void *)으로 반환합니다. 'malloc'이 메모리 할당에 실패하면 -1을 반환하고, 그렇지 않으면 메모리가 할당 된 주소를 반환합니다. 할당 된 메모리는 공백 주소를 int *로 형변환하여 정수 형태로 존재할 수 있습니다. 할당 된 메모리는 float *와 동일한 공백 주소를 캐스팅하기 만하면 float 형태가 될 수 있습니다.
Calloc과 Malloc의 비교 :
콜록 | Malloc | |
기본 기능 | 라이브러리 함수는 "size"바이트의 "n 요소"를 보유 할만큼 충분히 큰 메모리 영역을 할당합니다. | 라이브러리 함수는 메모리의 "크기"바이트 만 할당합니다. |
초기화 | 메모리 내용을 0으로 초기화합니다. | 메모리 내용을 0으로 초기화하지 않습니다. |
인수의 수 | 여기에는 두 가지 주장이 있습니다. | 여기에는 하나의 인수 만 있습니다. |
할당 된 값 | 할당 된 영역은 0으로 초기화됩니다. | 할당 된 메모리의 내용은 변경되지 않습니다. 즉, 메모리에 예측할 수없는 값이나 가비지 값이 포함되어 위험이 발생합니다. |
값을 반환합니다. | 무효 포인터 (void *). 할당이 성공하면 메모리 블록에 대한 포인터가 반환됩니다. | 무효 포인터 (void *). 할당이 성공하면 메모리 블록에 대한 포인터가 반환됩니다. |