繁体   English   中英

使用位集生成二进制数导致 c++ 中的分段错误

[英]Generating binary number using bitset causing segmentation fault in c++

生成从 0 到 255 的数字的二进制表示。这会导致分段错误。 请赐教。

    vector<bitset<7>> vb;
    for (i = 0; i < 256; i++)
    {
        bitset<7> b(i);
        vb[i] = b;
    }

    //print 
    for(i=0;i<256;i++){
        cout<<vb[i]<<"\n";

当您声明您的向量时,它是空的

vector<bitset<7>> vb;

你可以用给定的大小初始化它

vector<bitset<7>> vb(256);

否则,简单地分配给空向量将超出范围,因为它没有(重新)为您尝试访问的元素分配 memory

vb[i] = b;

您的矢量大小为 0。要么使用

vb.push_back(b);

或初始化一个大小,如:

vector<bitset<7>> vb(256);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM