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



댓글

이 블로그의 인기 게시물

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

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

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

Eigen 라이브러리 matrix 사용법

바로 프로젝트 적용 가능한 FIR Filter (low/high/band pass filter )를 c나 python으로 만들기