bli_malloc_user [explained with C++ code]
Do not miss this exclusive book on Binary Tree Problems. Get it now for free.
In this article at OpenGenus, we have explored bli_malloc_user in depth. bli_malloc_user() is a memory allocation API available in BLIS, a library.
Table of contents:
- What is bli_malloc_user?
- bli_malloc_user in BLIS
What is bli_malloc_user?
bli_malloc_user is a library method in BLIS/ BLAS to allocate memory. It is a wrapper function around malloc(). bli_malloc_user provides error checking and handling which is not available in malloc(). bli_malloc_user() is extensively used within the BLIS library for memory allocation.
Following is a C++ code snippet for using bli_malloc_user:
#include <blis/blis.h>
int main() {
// Allocate a buffer of size 1024 bytes
void* buffer = bli_malloc_user(1024);
// Use the buffer
// add code ...
// Free the buffer
bli_free_user(buffer);
return 0;
}
bli_malloc_user in BLIS
In BLIS variants, it is implemented in file blis/frame/base/bli_malloc.c where other malloc variants are available as well.
bli_malloc_user() is used to allocate aligned dynamic memory. It uses bli_fmalloc_align() internally which is a variant.
The implementation of bli_malloc_user() is as follows:
void* bli_malloc_user( size_t size, err_t* r_val )
{
const malloc_ft malloc_fp = BLIS_MALLOC_USER;
const size_t align_size = BLIS_HEAP_ADDR_ALIGN_SIZE;
#ifdef BLIS_ENABLE_MEM_TRACING
printf( "bli_malloc_user(): size %ld, align size %ld\n",
( long )size, ( long )align_size );
fflush( stdout );
#endif
void* p = bli_fmalloc_align( malloc_fp, size, align_size, r_val );
return p;
}
With this article at OpenGenus, you must have the complete idea of bli_malloc_user.
Sign up for FREE 3 months of Amazon Music. YOU MUST NOT MISS.