#define SAFE_FREE(p) do{ free(p); p = NULL; } while (0)
#define SAFE_FREE(p) free(p); p = NULL;
#include <stdio.h>
#include <stdlib.h>
#define SAFE_FREE(p) free(p); p = NULL;
int main()
{
int *p = malloc (sizeof(int));
*p = 10;
if (p != NULL)
SAFE_FREE(p);
else
;
return (0);
}
gcc -g do_while.c -o do_while
do_while.c: In function ‘main’:
do_while.c:13: error: ‘else’ without a previous ‘if’
if (p != NULL) {
free(p);
p = NULL;
};
else
... ...
if (p != NULL)
do {
free(p); p = NULL)
} while(0);
else
... ...
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |