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);