内存重叠

内存重叠:拷贝的目的地址在源地址范围内。所谓内存重叠就是拷贝的目的地址和源地址有重叠。

void Rtrim(char *buf){
   int i = 0;
   char *p = buf;
   if (!p) return;
   while (*p == ' '){
	   p++;
	   i++;
   }
   strcpy(buf, buf + i);
}

上述代码是将字符串前面的空格去掉,比如字符串 "    abcd" 转变为字符串 "abcd"

这段代码运行的时候,使用  valgrind --tool=memcheck --leak-check=full  -v  ./a.out  进行检查,发现了内存重叠

内存重叠_第1张图片

图上第二行报错 ,出现内存重叠

你可能感兴趣的:(c)