NVIDIA Interview Question
Software Engineer / Developersvoid *align_mem_alloc(size_t size, size_t alignment){
void *pa, *ptr;
pa=malloc(sizeof(size)+sizeof(void *)+sizeof(alignment-1));
if(!pa)
return NULL;
ptr=(void*)(((size_t)pa+sizeof(void*)+alignment-1)&(~(alignment-1)));
*((void**)ptr)=pa;
return ptr;
}
void align_free(void *ptr){
if(!ptr)
return;
free(*((void**)ptr-1));
}
- sumit saxena October 30, 2010