結局原因不明→結構怖い

とりあえず今日はC++のお話です。

class Piyo{
  public:
    Piyo();
    void doSomething();
};

class Hoge{
  public:
    Hoge(int t);
    void loopPiyoDoSomething();
  private:
    int times;
    Piyo* piyo;
};

Piyo::Piyo(){}

void Piyo::doSomething(){ //do something }

Hoge::Hoge(int t){
  piyo = new Piyo();
  times = t;
}

void Hoge::loopPiyoDoSomething(){
  for (int t = 0; t < times; t++)
    piyo -> doSomething();
}

int main(){
  Hoge* hoge = new Hoge( 10 );
  hoge -> loopPiyoDoSomething();

  return 0;
}

あってるかな…まぁやりたいことはHogeでPiyoのvoid関数を10回回す って感じのことです。


これが無限ループ?か何かにハマって出てこない…なんでだろうと思ったら、piyo.doSomething()をコールして帰ってきたらtimesがぶっ飛んだ値になってたから=w=;


実際はdoSomethingの中で人のAPI呼び出してガリガリやってるんですよね。
なんか、バッファオーバーフローとかして変な悪影響が出てるんじゃないかと心配でたまりません。