我在这里读了一个提示: http://www.cprogramming.com/tips/showTip.php?tip=183
话说:
如果没有指向相同的内存位置范围,也会监视指针是否重叠。
怎样才能监控这样的事情?将每个指针相互比较显然是愚蠢的。
答案 0 :(得分:2)
你不能,也不应该经常。这可能只是作者遇到的一些问题的调试提示,可能在嵌入式系统中很有用。
一般情况下,valgrind
可以帮助您解决指针问题,而不是任何手动比较。
答案 1 :(得分:0)
这是检查重叠的方法:
T *a, *b;
// ...
if (abs((int)((void*)a - (void*)b)) < sizeof(T))
// overlap
但我看不出有任何理由检查它。