【初心者歓迎】C/C++室 Ver.39【環境依存OK】
at TECH
253:デフォルトの名無しさん
07/06/30 20:32:10
//void* のポインタキャスト行ったりきたり実験
std::vector<std::string> vec2;
vec2.push_back("hoge" );
void *vo=(void *)&vec2; //void*型、準備OK
//ここから、スレッドの関数で受け取ってから、std::vector<std::string>に戻す。
std::vector<std::string> *vec=(std::vector<std::string> *)vo;//キャストしました。
std::vector<std::string> vec3=*vec;
cout << vec3[0].c_str()<< endl;
cout << (*vec)[0].c_str()<< endl;//おまけ。std::vector<std::string>にしなくても、これでもいい。
これは、正常に動きました。キャストの仕方とか大丈夫みたいなので、
参照しようと思ったデータが無いみたいです。
>>251
>多分スタック上に確保したvectorのアドレスそのまま
>渡してるだろ。それじゃクラッシュするのは当たり前だ。
スタック?検索すると、
”処理中のデータや戻りアドレスなどを一時的に退避する場合に使うことが多い”
ってありました。
vectorは使用しなくなると自動的に、
開放しちゃうっていう、あれのことでよかったでしょうか?
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4844日前に更新/194 KB
担当:undef