【初心者歓迎】C/C++室 Ver.39【環境依存OK】 at TECH
[2ch|▼Menu]
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