본문 바로가기
Dev/C\C++

[C/C++] malloc

by Ladun 2019. 11. 7.

(stdlib.h에 선언되어 있음.)

  • malloc(메모리 크기);
    • void* memcmp(size_t _Size);
    • 할당한 메모리의 주소 반환

함수 호출 시 할당하고자 하는 메모리의 크기를 바이트 단위로 전달받고, 해당 크기만큼 메모리를 할당한다.

그리고 할당한 메모리의 시작 주소값을 반환한다.

할당된 메모리는 초기화 되지 않았을 수도 있다.

 

할당한 메모리는 반드시 free로 해제해줘야 한다.

 

동적할당을 할 때 사용된다.

 

인자

Size

메모리 블록의 크기 (바이트 단위)

 

리턴값
  • 메모리 할당에 성공하였을 경우, 할당한 메모리의 시작 주소값을 반환한다. 

  • 반환형이 void* 이기 때문에 사용하려는 타입으로 캐스팅을 해줘야 한다.
  • 메모리 할당에 실패하였을 경우, NULL 포인터를 반환한다.

예시1

#include <stdio.h>
#include <stdlib.h>

int main()
{
	char* buffer;
	buffer = (char*)malloc(sizeof(char) * 10);
	if (buffer == NULL)
		return 0;

	for (int i = 0; i < 9; i++)
		*(buffer + i) = 'A' + rand() % 26;
	buffer[9] = '\0';
	printf("Buffer: %s", buffer);

	free(buffer);

	return 0;
}

결과1

Buffer: PHQGHUMEA

참고자료

'Dev > C\C++' 카테고리의 다른 글

[C++] 함수와 const  (0) 2019.12.30
[C/C++] free  (0) 2019.11.07
[C/C++] memcmp  (0) 2019.11.02
[C/C++] memset  (0) 2019.11.01
[C/C++] memcpy  (0) 2019.11.01