你叫免费的已分配的内存返回指针malloc/calloc/realloc 只.
例如
char* ptr=malloc(10);
// use memory pointed by ptr
// e.g., strcpy(ptr,"hello");
free(ptr); // free memory pointed by ptr when you don't need it anymore
Run Code Online (Sandbox Code Playgroud)
要记住的事情:
永远不要释放记忆两次 这是可以做到:(1)如果你调用free上ptr两倍和价值ptr,因为第一次调用没有改变free(2)你必须指向相同的内存两个不同的指针; 如果您在一个上免费拨打电话free,则现在也不允许您拨打第二个指针
释放指针时,甚至不允许读取其值; 例如,if (ptr)除非您初始化ptr为新值,否则在释放后不允许
当然你也不应该取消引用释放的指针
正如@chqrlie指出的那样,我还要在这里添加一个空指针也是完全可以的free,它只会做什么