X1000代码中的一个内存泄漏的问题

static int compare_face_feature(uint8_t* pfeature, ssq_face_id_t *id)
{
    int i,ret;
    uint8_t* scores = NULL;
    face_info.cur_score = 0;


    scores = (uint8_t*)malloc(config.max_enroll_face_num*sizeof(uint8_t));
    if (scores == NULL)
{
        LOGE("Failed to malloc scores\n");
        return -1;
    }
    ret = NMSDK_IRFACE_CompareFeatureList(face_info.p_list_handle, pfeature, 0, -1, scores);
    if (ret < 0) {
        LOGE("Compare from feature list fail\n");
free(scores);
        return -2;
    }
else if(ret == 0) 
    {
        /* no match */
    } 
else 
    {
        for (i = 0; i < ret; ++i)
{
            if (scores[i] > face_info.cur_score) 
{
                face_info.cur_score = scores[i];
                *id = i;
                LOGI("Similarity of compare scores : %d \n", face_info.cur_score);
            }
        }
    }
free(scores);
    return face_info.cur_score;

}



内存释放是后来添加的。

猜你喜欢

转载自blog.csdn.net/qinrenzhi/article/details/80678194