如果程序完成后给定指针未被释放,Valgrind会给出“绝对丢失”的消息。在我的情况下,错误是后来的代码 TEX 被分配了新值并且之前的值被泄露(assignTex(mtl)被调用两次)。
例如,如果发生错误,则由于此代码而导致内存泄漏
bmp_load_bitmap(bmp, mtl->textureFilename, 1/*flip vertically*/); if(err_is_error_set()) { return 0; }
bmp没有被释放。
此代码段中也存在相同的情况
tex_create_texture(tex); if(err_is_error_set()) { return 0; }
另外,检查内存分配是否成功会更安全。