#include #include #include #include static void _free(char **ptr) { printf("Freeing %p=%p\n", ptr, *ptr); free(*ptr); } int main(int argc, char *argv[]) { [[gnu::cleanup(_free)]] char *buf = malloc(18); [[gnu::cleanup(_free)]] char *null = NULL; printf("Pointers: %p=%p %p=%p\n", &buf, buf, &null, null); return 0; }