2016-09-20 64 views
1

我想在std :: array對象上使用按位數據轉換,爲此我需要知道是否安全地存儲數組的地址,或者是否存在更改數據位置的函數。例如:通過地址訪問std :: array數據是否安全?

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

感謝您的回答。

+0

'std :: array'基本上是一個圍繞經典C數組的薄包裝。你可以做任何你可以用C數組做的事情,再加上你用'std :: vector'做的所有事情都可以調整它的大小。 –

回答

6

std::array是靜態大小的,並且針對所設置的數據元素保留的地址是穩定的(與std::vector不同)。

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