#include #include static void *thread_func(void *arg) { arg = realloc(arg, 1024); if (!arg) { exit(EXIT_FAILURE); } free(arg); return NULL; } int main(void) { void *mem = realloc(NULL, 12); if (!mem) { return EXIT_FAILURE; } pthread_t thread; int r = pthread_create(&thread, NULL, thread_func, mem); if (r != 0) { return EXIT_FAILURE; } r = pthread_join(thread, NULL); if (r != 0) { return EXIT_FAILURE; } return EXIT_SUCCESS; }