从空 std::vector 获取原始数据指针
Get raw data pointer from empty std::vector
这是一个未定义的行为:
std::vector<int> v;
int const * a = &v[0];
我的目标是避免 UB 并且 vector::data()
函数可以工作。但是我需要在没有 >=C++11
.
的情况下进行
例如,如果我用 vector::reserve
分配一些内存,它会起作用吗?
v.reserve(1);
int const * a = &v[0];
澄清:
我取指针后向量没有变化,向量可能为空或包含数据。
这是一个未定义的行为:
std::vector<int> v;
int const * a = &v[0];
我的目标是避免 UB 并且 vector::data()
函数可以工作。但是我需要在没有 >=C++11
.
例如,如果我用 vector::reserve
分配一些内存,它会起作用吗?
v.reserve(1);
int const * a = &v[0];
澄清:
我取指针后向量没有变化,向量可能为空或包含数据。