【问题标题】:Is it safe to access std::array data by address?按地址访问 std::array 数据是否安全?
【发布时间】:2017-01-28 12:05:55
【问题描述】:

我想在 std::array 对象上使用按位数据转换,为此我需要知道存储数组地址是否安全,或者是否有一个函数可以更改数据位置。例如:

std::array<int, 100> array;
int* startMarker = array.data();
(filing the array and doing operations on it)
std::cout << *startMarker << std::endl;

感谢您的回答。

【问题讨论】:

  • std::array 基本上是经典 C 数组的薄包装。您可以使用 C 数组执行任何您可以执行的操作,以及使用 std::vector 执行的所有操作,无需调整它的大小。

标签: c++ arrays dereference stdarray


【解决方案1】:

std::array 是静态大小的,并且为内部数据元素保留的地址是稳定的(与 std::vector 不同)。

所以是的,保留这些地址是安全的。

【讨论】:

    猜你喜欢
    • 2021-11-28
    • 2023-03-26
    • 2021-07-27
    • 1970-01-01
    • 2019-07-18
    • 2014-03-12
    • 2016-10-26
    • 1970-01-01
    • 2021-08-11
    相关资源
    最近更新 更多