使用位集生成二进制数导致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";
您的向量大小为 0。要么使用
vb.push_back(b);
或初始化一个尺寸,如:
vector<bitset<7>> vb(256);
当你声明你的向量时它是空的
vector<bitset<7>> vb;
你可以用给定的大小初始化它
vector<bitset<7>> vb(256);
否则,简单地分配给空向量将超出范围,因为它没有(重新)为您尝试访问的元素分配内存
vb[i] = b;
正在生成 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";
您的向量大小为 0。要么使用
vb.push_back(b);
或初始化一个尺寸,如:
vector<bitset<7>> vb(256);
当你声明你的向量时它是空的
vector<bitset<7>> vb;
你可以用给定的大小初始化它
vector<bitset<7>> vb(256);
否则,简单地分配给空向量将超出范围,因为它没有(重新)为您尝试访问的元素分配内存
vb[i] = b;