Type Here to Get Search Results !

리눅스에서 메모리 주소로 메모리 할당 크기를 알아올 수 있는 방법

이 글에서는 리눅스 glibc에서 메모리 주소로 메모리 할당 크기를 알아올 수 있는 방법에 대해서 설명합니다. 

linux C 언어 glibc


glibc에서 메모리 주소로 메모리 할당 크기를 알아오기


리눅스의 glibc에서 주소를 통해 메모리 할당 크기를 알아낼 때, 비공식적인 함수인 malloc_usable_size()를 사용할 수 있습니다. 이 함수는 malloc() 및 관련함수로 할당된 블록의 사용 가능한 크기를 반환합니다. 이 함수는 <malloc.h> 헤더 파일에 정의되어 있습니다.


다음은 malloc_usable_size() 함수 사용 예제입니다..

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

int main() {
    void *memory = malloc(1024);
    printf("Memory allocated at address %p\n", memory);
    
    size_t size = malloc_usable_size(memory);
    printf("Memory size: %zu bytes\n", size);

    free(memory);
    return 0;
}


malloc_usable_size() 함수는 디버깅과 특수 상황에서 유용할 수 있습니다.
이 함수는 비표준이며, 플랫폼 및 구현에 따라 다른 이름으로 사용될 수 있습니다. 예를 들어, BSD 계열의 Unix 시스템에서는 malloc_size() 함수가 있습니다.