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