bugprone-misplaced-pointer-arithmetic-in-alloc¶
查找将整数表达式添加到或从内存分配函数(malloc()
、calloc()
、realloc()
、alloca()
)的结果中,而不是其参数的情况。即使其中一个函数由常量函数指针调用,该检查也能检测到错误情况。
示例代码
void bad_malloc(int n) {
char *p = (char*) malloc(n) + 10;
}
建议的修复方法是将整数表达式添加到 malloc
的参数中,而不是其结果。在上面的示例中,修复方法是
char *p = (char*) malloc(n + 10);