#include #include #include "tralloc.h" void *tralloc (size_t max_s, size_t min_s, size_t *act_s) { void *rv = malloc (max_s); while (rv == NULL && max_s > min_s) rv = malloc (max_s /= 2); if (act_s != NULL) *act_s = max_s; return rv; }