可能重复:
检查指针是否指向数组
如果我有一个数组和一个大小,并且我想检查给定的指针是否指向数组内的元素,那么在标准 C 或 C++ 中是否有任何方法可以在不调用 UB 的情况下这样做?
这行得通吗?
bool is_inside(someType * array, int size, someType * other_pointer){
for (int i = 0; i < size; i++)
if (array + i == other_pointer)
return true;
return false;
}
==
编辑:据我了解,除了和!=
对于没有 UB 的不指向同一个数组的指针之外,您不能使用比较(尽管实际上它按预期工作)。我错了吗?