簡體   English   中英

使用向量作為成員的結構的C ++大小

[英]C++ Size of Struct with Vectors as Members

我有一個結構,其中有一些向量作為成員:

struct my_struct
{
    std::vector<int> x;
//  more members here
};

和my_struct的一個實例:

my_struct A;

結構中的向量在程序執行期間顯然會發生變化,例如

A.x.resize(...);

或Axpush_back(...);

我的問題是,有沒有辦法在程序中的某個時刻知道A的內存大小? 由於向量成員,sizeof(A)不返回正確答案。

向量的大小不會影響結構的大小,因為向量會分配內存來保存堆上的對象,至少使用默認的分配器。 此外,在將結構內容寫入文件時,將永遠不會寫入向量所包含的對象,只會寫入向量的數據成員的值。 對象在某種指針中由向量引用,因此寫入文件的是指針(地址)的值,而不是它指向的數據。 要將向量及其對象寫入文件,您需要自己實現。 也許提升序列化可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM