☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

资源的分配与回收方法应配套使用

2.6 ID_incompatibleDealloc
目录 › next › previous

使用了某种分配方法,就应使用与其配套的回收方法,否则会引发严重错误。

示例:

void foo() {
    T* p = new T;
    ....
    free(p);   // Non-compliant, use ‘delete’ instead
}

void bar(size_t n) {
    char* p = (char*)malloc(n);
    ....
    delete[] p;   // Non-compliant, use ‘free’ instead
}

不同的分配回收方法属于不同的资源管理体系,用 new 分配的资源应使用 delete 回收,malloc 分配的应使用 free 回收。

相关

ID_incompleteNewDeletePair

依据

ISO/IEC 9899:1999 7.20.3.2(2)-undefined ISO/IEC 9899:2011 7.22.3.3(2)-undefined ISO/IEC 14882:2003 3.7.3.2(3) ISO/IEC 14882:2011 3.7.4.2(3)-undefined

参考

SEI CERT MEM51-CPP
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.