정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

malloc

 

Visual Studio 2017 RC에 대한 최신 설명서는 Visual Studio 2017 RC 설명서를 참조하세요.

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

void *malloc(  
   size_t size   
);  

매개 변수

size
할당할 바이트입니다.

malloc할당된 된 공간에는 void 포인터를 반환 하거나 NULL 사용 가능한 메모리가 부족 한 경우. 이외의 형식에 대 한 포인터를 반환 하려면 void, 반환 값에 형식 캐스팅을 사용 합니다. 반환 값에서 가리키는 저장소 공간에는 맞춤 요구 사항이 줄어듭니다 보다 작거나 기본 맞춤의 개체에 있는 모든 유형의 저장소에 대 한 적절 하 게 정렬 된 것으로 보장 됩니다. (기본 맞춤은 맞춤에 대 한 필요한 Visual c + +에서는 double, 또는 8 바이트입니다. 64 비트 플랫폼을 대상으로 하는 코드에는 16 바이트) 사용 하 여 _aligned_malloc 개체는 더 큰 맞춤 요구 사항에 대 한 저장소를 할당 하-SSE 형식은 예를 들어 __m128__m256, 및를 사용 하 여 선언 된 형식에 __declspec(align(``n``)) 여기서 n 8 보다 큽니다. 경우 size 가 0 이면 malloc 힙의 빈 항목을 할당 하 고 해당 항목에 대 한 유효한 포인터를 반환 합니다. 반환 된 값을 항상 검사 malloc요청한 메모리 크기가 작은 경우에 합니다.

malloc 함수는 메모리 블록을 적어도 할당 size 바이트입니다. 블록은 보다 클 수 있습니다 size 맞춤 및 유지 관리 정보에 필요한 공간 때문에 (바이트)입니다.

malloc설정 errnoENOMEM 메모리 양을 초과 요청 하는 경우 또는 메모리 할당에 실패 하면 _HEAP_MAXREQ합니다. 이 코드 및 기타 오류 코드에 대 한 정보를 참조 하십시오. errno, _doserrno, _sys_errlist 및 _sys_nerr합니다.

시작 코드를 사용 하 여 malloc 저장소를 할당 하는 _environ, envp, 및 argv 변수입니다. 다음 함수 및 와이드 문자 대응도 호출 malloc합니다.

callocfscanf_getwsetvbuf
_exec 함수fseek_popen_spawn 함수
fgetcfsetposprintf_strdup
_fgetchar_fullpathputc시스템
fgetsfwriteputchar_tempnam
fprintfgetc_putenvungetc
fputcgetchar배치vfprintf
_fputchar_getcwd_putwvprintf
fputs_getdcwdscanf
fread가져옵니다._searchenv

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

_set_new_mode(1)  

초기 프로그램 또는 NEWMODE와 링크에 있습니다. OBJ (참조 링크 옵션).

응용 프로그램은 C 런타임 라이브러리의 디버그 버전에 연결 되 면 malloc 확인 _malloc_dbg합니다. 디버깅 프로세스 동안 힙을 관리 하는 방법에 대 한 자세한 내용은 참조 CRT 디버그 힙 정보합니다.

malloc표시 된 __declspec(noalias)__declspec(restrict);이 함수가 되지 않는 전역 변수를 수정 하 고 반환 된 포인터 별칭이 지정 되지 않음을 의미 합니다. 자세한 내용은 참조 noalias제한합니다.

루틴필수 헤더
malloc<stdlib.h>및<malloc.h></malloc.h></stdlib.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" );  
   }  
}  

Memory space allocated for path name  
Memory freed  

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

메모리 할당
calloc
있음
realloc
_aligned_malloc

표시: