12345678910111213141516171819202122232425262728293031323334353637383940 |
- #if (!defined(ALLOC_PRF) || !defined(ALLOC_TYPE))
- #error
- #endif
- #include "util.h"
- #include <stdlib.h>
- #include <stdio.h>
- ALLOC_TYPE* ALLOC_PRF(_alloc)(size_t count)
- {
- return malloc(count * sizeof(ALLOC_TYPE));
- }
- void ALLOC_PRF(_free)(ALLOC_TYPE* arr)
- {
- free(arr);
- }
- ALLOC_TYPE* ALLOC_PRF(_realloc)(ALLOC_TYPE* arr, size_t count)
- {
- size_t newsz = count * sizeof(ALLOC_TYPE);
- ALLOC_TYPE* newarr = realloc(arr, newsz);
- if (count != 0 && newarr == NULL)
- {
- static char msg[128];
- sprintf
- ( msg
- , "realloc(%p, %u*%u=%u) failed: to provide an alternative behaviour."
- , arr, (unsigned int) count, (unsigned int) sizeof(ALLOC_TYPE)
- , (unsigned int) newsz
- );
- ABORT(msg);
- };
- return newarr;
- }
- #undef ALLOC_PRF
- #undef ALLOC_TYPE
|