aligned malloc free 예제 코드

 원하는 단위로 정렬된 메모리를 할당하는 예제 코드이다.


aligned malloc

void * aligned_malloc(size_t size, size_t align)
{
     void *ptr = NULL;
     void *aligned_ptr = NULL;

     if (size == 0 || align & (align-1))
     {
          return (void*)0;
     }

     ptr = malloc(size+align);
     if (!ptr)
     {
          return (void*)0;
     }

     memset(ptr,0,size+align);

     aligned_ptr = (void*)(((size_t)ptr+align) & ~(align-1));
     ((void **)aligned_ptr)[-1] = ptr;

     return aligned_ptr;
}


aligned free

void aligned_free(void *aligned_ptr)
{
     if (aligned_ptr)
     {
          free(((void **)aligned_ptr)[-1]);
     }
}



댓글

이 블로그의 인기 게시물

간단한 cfar 알고리즘에 대해

windows 10에서 스마트폰 미러링으로 화면 녹화

uwb radar 신호 움직이는 물체 위치 측정 예제

HTTP 프로토콜 구조 개요와 예제

windows에서 간단하게 크롬캐스트(Chromecast)를 통해 윈도우 화면 미러링 방법