C++ | void *data[1000]

C++ | void *data[1000]

本文关键字:1000 data void C++      更新时间:2023-10-16

c++ 中保持静态分配数组中的指针是否合适?

void *data[1000];

在32位和64位机器上void*的大小不同吗?

这几乎是绝对不合适的。Void指针一开始就非常糟糕,如果将它们与可变静态数据混合在一起,结果会非常糟糕。在它上面有一个神奇数字大小的原始未包装数组,我很高兴我的代码中没有这个。当然,如果你必须这样做,那么你必须这样做,但在令人难以置信的大多数新代码中,你不需要这样的东西。

是的,void*的大小不同

void*更好的选择是让每个对象都从基类派生,而使用base*

比固定大小的数组更好的选择是使用std::vector<base*>或Boost指针容器。

是的,指针的大小在32位和64位系统之间是不同的——这就是关键所在。

是的,void*的大小取决于系统位。

如果没有更多的细节,很难说使用固定大小的数组并在其中存储void*指针是否合适——这通常不是一个好的选择,但有时你真的没有其他选择。