矢量矢量的大小(以字节为单位)

时间:2014-09-26 11:31:50

标签: c++ vector

我试图找到矢量向量的字节大小。我需要这个大小才能用malloc分配一个指针。在我看来,我分配了太多内存,因为当我尝试使用memcpy复制内容时,它会显示“访问冲突读取位置......”。奇怪的是,它只会崩溃一些,即使我不改变代码。有什么东西我不见了吗?

为了完全理解我的问题,这里有一段代码:

struct Node
{
    int total;
    float threshold;
    float value[2];
    int child [2]; 
};

vector<vector<Node>> NodeArray;
NodeArray.resize(100);

for (int  i = 0; i < NodeArray.size(); i++)
{
    NodeArray[i].resize(20);
}

int ArraySize = sizeof(NodeArray);
for (vector<vector<Node>>::iterator it = NodeArray.begin(); it != NodeArray.end(); ++it) 
{
    ArraySize += it->size() * sizeof(Node) + sizeof(it);
}


vector<vector<Node>> *NodeArray_d;
NodeArray_d= (vector<vector<Node>>*)malloc(ArraySize);
memcpy (NodeArray_d, &NodeArray, ArraySize);

0 个答案:

没有答案