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]);
     }
}



댓글

이 블로그의 인기 게시물

python winsound를 이용한 윈도우 환경에서 소리 재생 예제

간단한 cfar 알고리즘에 대해

쉽게 설명한 파티클 필터(particle filter) 동작 원리와 예제

간단한 칼만 필터(Kalman Filter) 소스 코드와 사용 예제

base64 인코딩 디코딩 예제 c 소스