malloc

메모리 블록을 할당 합니다.

void *malloc(
   size_t size 
);

매개 변수

  • size
    할당할 바이트 수입니다.

반환 값

mallocvoid 포인터에 할당 된 공간을 반환 또는 NULL 사용할 수 있는 메모리가 부족 하 여 경우.포인터 형식으로 이외의 반환 합니다 void, 반환 값을 캐스팅 하는 형식을 사용 합니다.반환 값에서 가리키는 저장소 공간 개체의 저장소를 적절 하 게 맞출 수 보장 됩니다.크기가 0 인 경우 malloc 할당 된 힙의 빈 항목 및 해당 항목에 대 한 유효한 포인터를 반환 합니다.항상에서 반환을 확인 malloc, 요청한 메모리 양이 적은 경우에.

설명

malloc 함수를 메모리 블록의 할당에 최소한 size 바이트입니다.블록 보다 큰 수 있습니다 size 바이트 맞춤 및 관리 정보에 필요한 공간 때문에.

malloc설정 하는 errno 에 ENOMEM 메모리 할당 오류가 발생 하는 경우 또는 메모리 양을 초과할 경우 _HEAP_MAXREQ.이 문제 및 기타 오류 코드에 대 한 자세한 내용은 errno, _doserrno, _sys_errlist, _sys_nerr.

시작 코드를 사용 하 여 malloc 에 대 한 저장소를 할당 하는 _environ, envp, 및 argv 변수입니다.또한 다음과 같은 기능 및 와이드 문자 해당 하는 이미지를 호출 malloc:

calloc

fscanf

_getw

setvbuf

_exec 함수

fseek

_popen

_spawn 함수

fgetc

fsetpos

printf

_strdup

_fgetchar

_fullpath

putc

시스템

fgets

fwrite

putchar

_tempnam

fprintf

getc

_putenv

ungetc

fputc

getchar

배치

vfprintf

_fputchar

_getcwd

_putw

vprintf

fputs

_getdcwd

scanf

 

fread

가져옵니다.

_searchenv

 

C + + _set_new_mode 함수에 대 한 새 처리기 모드 설정 malloc.새 처리기 모드를 나타내는 것인지, 오류가 발생 하면 malloc 으로 설정 새 처리기 루틴을 호출 하는 것 _set_new_handler.기본적으로 malloc 메모리 할당에 실패 시 새 처리기 루틴을 호출 하지 않습니다.이 기본 동작을 재정의할 수 있습니다 있도록, malloc 메모리를 할당 하지 못할 malloc 에서 동일한 새 처리기 루틴을 호출 방법을 new 연산자 같은 이유로 실패 하는 경우를 하지.기본값을 재정의 하려면 호출

_set_new_mode(1)

초기 단계에서 프로그램 또는 NEWMODE와 연결 합니다.OBJ (see 연결 옵션).

C 런타임 라이브러리의 디버그 버전을 응용 프로그램이 연결 될 때 malloc 확인 _malloc_dbg.디버깅 프로세스 동안 힙 관리 하는 방법에 대 한 자세한 내용은 참조 하십시오. CRT 디버그 힙.

malloc표시 된 __declspec(noalias) 및 __declspec(restrict), 함수가 전역 변수를 수정 하려면 보장 되 고 별칭이 지정 된 포인터가 반환 수 없습니다.자세한 내용은 별칭제한.

요구 사항

루틴

필수 헤더

malloc

<stdlib.h> 및 <malloc.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

라이브러리

모든 버전의 C 런타임 라이브러리.

예제

// crt_malloc.c
// This program allocates memory with
// malloc, then frees the memory with free.
 

#include <stdlib.h>   // For _MAX_PATH definition
#include <stdio.h>
#include <malloc.h>

int main( void )
{
   char *string;

   // Allocate space for a path name
   string = malloc( _MAX_PATH );

   // In a C++ file, explicitly cast malloc's return.  For example, 
   // string = (char *)malloc( _MAX_PATH );

   if( string == NULL )
      printf( "Insufficient memory available\n" );
   else
   {
      printf( "Memory space allocated for path name\n" );
      free( string );
      printf( "Memory freed\n" );
   }
}
  

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.

참고 항목

참조

메모리 할당

calloc

free

realloc