// 在 create 函数中申请的内存发生了泄漏 #include #include #include // memset void create(char *p, int n) { p = (int *)malloc(n); memset(p, '\0', n); if (NULL == p) { perror("malloc error"); } } int main() { int *p = NULL; create(p, 32); scanf("%s", p); printf("==>%s\n", p); // 用完之后,释放空间 free(p); return 0; // p 指向的空间没有释放,内存泄漏 }