在 C++ 代码中禁用 C 资源管理函数
2.26 ID_forbidMallocAndFree
为了简化资源管理并避免潜在的错误,在 C++ 代码中不应直接使用分配、释放普通指针的函数,而应使用容器、智能指针和相关工厂函数。
示例:
void foo(size_t n) {
int* p = (int*)malloc(n * sizeof(int)); // Non-compliant
....
free(p); // Non-compliant
}
应改为:
void foo(size_t n) {
auto p = make_unique<int[]>(n); // Compliant
....
}