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

new 表达式只可用于赋值或当作参数

10.10.2 ID_oddNew
目录 › next › previous

new 表达式只应作为“=”的直接右子表达式,或直接作为参数,其他形式均有问题。

本规则对“placement new”表达式不作要求。

示例:

int i = *new int(10);         // Non-compliant, memory leak

int& j = *new int(10);        // Non-compliant
delete &j;                    // Very odd

char* p = new char[10] + 5;   // Non-compliant
delete[] p - 5;               // Very odd

if (new int[10]) {            // Non-compliant, memory leak
    ....
}

这些问题多数是由笔误或错误的宏展开造成的。

相关

ID_multiAllocation
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.