Предположительно странный макрос, приведенный ниже, является полезной заменой для удаления нескольких классов уязвимостей системы безопасности, а также для отладки помощи, поскольку доступ к свободным () 'd-областям с большей вероятностью может вызвать сбои, а не незаметное повреждение памяти.
#define my_free(x) do { free(x); x = NULL; } while (0)
Цикл do-while помогает окружающему коду легче переваривать множественные операторы. например если (сделано) my_free (x);