realloc的使用误区

void *ptr = realloc(ptr, new_size); if (!ptr) { // 错误处理 } 这里就引出了一个内存泄露的问题,当realloc() 分配失败的时候,会返回NULL。可是参数中的 ptr 的内存是没有被释放的。若是直接将realloc()的返回值赋给ptr。那么当申请内存失败时,就会形成ptr原来指向的内存丢失,形成内存游离和泄露。 正确的处理应该是这样:spa
相关文章
相关标签/搜索