gpt4 book ai didi

c++ - 有什么方法可以检测指针是否指向数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:00:10 25 4
gpt4 key购买 nike

在C++中有没有办法检测指针是否指向数组?我的问题是我想实现一个类,它成为数组的所有者。我的类是用指针初始化的,我想知道指针是否真的是一个数组指针。这是简化的代码:

class ArrayOwner {
public:
explicit ArrayOwner( int* initialArray ) : _ptrToArray(initialArray) {}
virtual ~ArrayOwner() { delete [] _ptrToArray; }
private:
int* _ptrToArray;
}
  • 这个用法就可以了:ArrayOwnerfoo( new int[10] );
  • 但是这个用法导致未定义的行为:ArrayOwner foo( new int() );

我想在构造函数中添加断言,“initialArray”指针实际上是一个数组指针。我无法更改构造函数的契约(Contract),使用 vector 等。有什么办法可以用 C++ 编写这个断言吗?

最佳答案

不,不幸的是不是。 C++ RTTI不扩展到原始类型。

关于c++ - 有什么方法可以检测指针是否指向数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1025941/

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