さまざまなデータ型の引数を にキャストして格納する汎用関数を作成しようとしていvector<char>
ます。キャストとは、ビット表現が文字のベクトル内に保持されることを意味します。たとえば、 のint
ような4 バイトは、 、、および0x19a4f607
としてベクトルに格納されます。vc[0] = 0x19
vc[1] = 0xa4
vc[2] = 0xf6
vc[3] = 0x07
ここまで書いてきましたが、セグメンテーション違反が発生します。どうすればこれを修正できますか?
template <class T>
void push_T(vector<char>& vc, T n){
char* cp = (char*)&n;
copy(cp, cp+sizeof(T), vc.end());
}