不应转换 new 表达式的类型
12.18 ID_oddNewCast
new 表达式的类型是明确的,转换 new 表达式的类型易造成分配、访问或回收相关的错误。
示例:
int* p = (int*)new char[123]; // Non-compliant
....
delete[] p; // What will happen?
例中 char 数组被转为 int 数组,由于元素个数不兼容也会导致内存访问与回收的错误。
new 表达式的类型是明确的,转换 new 表达式的类型易造成分配、访问或回收相关的错误。
示例:
int* p = (int*)new char[123]; // Non-compliant
....
delete[] p; // What will happen?
例中 char 数组被转为 int 数组,由于元素个数不兼容也会导致内存访问与回收的错误。