char *someFn1(){ char szBuf[128]; return szBuf; } char *someFn2(){ char *psz = malloc(128); free(psz); return psz; }В дальнейшем обращение к чужой области памяти и:
void safefree(void **pp){ if (pp!=NULL && *pp!=NULL){ free(*pp); *pp = NULL } } void caller(){ char *ptr = malloc(128); safefree(&ptr); }