gpt4 book ai didi

c++ - 检查指针是否指向数组

转载 作者:IT老高 更新时间:2023-10-28 22:34:28 27 4
gpt4 key购买 nike

我能否检查给定的指针是否指向数组中的对象,由其边界指定?

template <typename T>
bool points_within_array(T* p, T* begin, T* end)
{
return begin <= p && p < end;
}

或者如果 p 指向数组边界之外,指针比较会调用未定义的行为吗?在这种情况下,我该如何解决问题?它适用于 void 指针吗?还是无法解决?

最佳答案

虽然比较只对数组中的指针和“结束后的一个”有效,但使用以指针为键的集合或映射是有效的,它使用std::less<T*>

早在 1996 年,comp.std.c++ 就对这种方式进行了一次大讨论。

关于c++ - 检查指针是否指向数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com