VC++2005EEで作成しています。
有る関数の中でループを毎に乱数を発生させ、配列に値を保存させようとしたのですが
実行画面では同じ数値に成ってしまいました。デバックをしてみたところ

@1から見ていくと、配列にちゃんと違う数値が入っていき、ループを抜けた
@2までみても違う数値が保存されていました。

@2にブレークポイントを設定し、そこで値を確かめるとListの値には
同じ数値が配列に保存されていました。

全て値がう値が保存されている様にしたいのですが、何が問題になっているのか見当がつきません。
何か対策とかあるのでしょうか

srand( (Uint32)time(NULL) );
m_Tmp = new Object();
@1
for ( Uint32 i=0; i<MAX; ++i )
{
m_List.push_back( *m_Tmp );
m_List[i].SetNum( rand() % 10 );
}
@2
※SetNumは与えられた値を保存させるだけのメソッドです。