在c ++中分配向量空间

时间:2017-10-20 16:28:13

标签: c++ vector memory-management

为什么我不能在vector上分配这么多空间:

#include <stdio.h>
#include <vector>
#include <inttypes.h>
#include <stdint.h>
#include <iostream>
int main()
{
    std::vector<uint64_t> offsets;
    uint64_t count;
    count = 4294967296;
    offsets.resize(count);
    //printf("%" PRIu64 "\n", offsets.max_size());
    printf("%" PRIu64 "\n", offsets.size());
    printf("%" PRIu64 "\n", offsets.max_size());
    printf("%" PRIu64 "\n", count * sizeof(uint64_t));    
}

如果我在偏移量上省略调整大小功能,这是输出:

0
2305843009213693951个
34359738368

如果最大尺寸为2305843009213693951,为什么我不能分配4294967296的计数,我觉得我不太了解调整大小是如何工作的。

0 个答案:

没有答案