【发布时间】:2015-07-21 23:32:40
【问题描述】:
假设我有一个简单的 C++ 类,
class Data {
public:
float data[3];
void clear() { data[0] = 0.0f; data[1] = 0.0f; data[2] = 0.0f }
}
还有一个数据的向量,
std::vector<Data> v(10);
假设&v[0].data[0] 指向一个包含 30 个浮点数的数组是否安全?
【问题讨论】:
-
它是否指向 30 个连续的
float?是的。它是否指向数组 30float?不,有区别。遍历每个Data,然后遍历其中的每个data会安全得多。 -
@Cyber 填充呢?
-
我想这个问题不是很有趣,不了解问题是什么。您想将向量视为一个平面数组并对其进行索引吗?
-
安全吗?可能不是。但话虽如此,我已经使用依赖于此类行为的程序编写了几个内存映射。使用打包编译指示和编译时间 sizeof 断言。