に渡す前に、これを読んで慎重に読んでください。面白いですね。基本的にはstd::bitset
操作を使用するためにタイプchar
の配列をstd::string
に変換したいのですが、実行時にbitset
オブジェクトを作成しようとするとこのエラーが発生します。charの配列をstd :: stringに変換してstd :: bitset segフォールト
)のインスタンス投げた後、いわゆる 'STDを::例外Invalid_argument' は何(終了:ビットセット:: _ M_copy_from_ptr中止(コアダンプ)
は、ここでは、コード
だ#include <iostream>
#include <cstdlib>
#include <bitset>
int main()
{
char BYTE_4[4] = { 1, 0, 0, 0};
std::string str_BYTE_4 = std::string(BYTE_4);
std::bitset<32> str_BYTE_4_bit(str_BYTE_4);//crash here
std::cout<<"str_BYTE_4_bit. "<<str_BYTE_4_bit<<std::endl;
return 0;
}
I std::stringstream
と他のタイプの変換を試してみたところ、char
とstd::string
の両方のポインタがあって、それには何も関係ありません。std::bitset
コンストラクタI同じエラーが発生しますか?
これらは私がコメントしたもので、上記のコードから削除したものです。私が試したことを示しています。
//char* BYTE_4 = new char[4];
//std::stringstream SS;
//std::string str_BYTE_4 = "0101";
//SS << BYTE_4;
//str_BYTE_4 = SS.str();
//for(int index = 0; index < 4; index++)
// str_BYTE_4 += BYTE_4[index];
//std::string *str_BYTE_4 = new std::string[4];
//for(int index = 0; index < 4; index++)
// BYTE_4[index] = rand()%255;
文字が含まれている必要があり、文字列 '「0''と '」れていない28先行ビットから成り整数「0」と「1」。 –
それで解決できますか? – pandoragami
それは動作します!ありがとう! – pandoragami