質問します。
STLのVECTORを用いた構造体の配列に関するプログラムで
typedef struct{
int a1,a2,b1,b2;
}Mat;
vector<Mat> Matrix;
void func(Mat *dat){
dat->b1 = 3; dat->b2 = 5;
}

void main(void){
int i;
for(i=0;i<10;i++){
a1 = 1*i; a2 = 2*i+3;
} //--------------------------★1
for(i=0;i<10;i++){
func(&Matrix[i]);
} //--------------------------★2
return;
}
とまぁこういうプログラムがあったとして(実際はもっと複雑な事やってるのですが)
★1の時にはしっかり値をセットできているのに、
★2の時にはVECTOR配列Matrixのメンバ値全てが-8123456といったヘンな値をとるようになってしまいました。
また、関数の引数をポインタではなく構造体そのものにすると(func(Mat dat)とし、"->"の代わりに"."を使う)途中で例外エラー
hoge.exe の 0x00424dd4 でハンドルされていない例外が発生しました : 0xC0000005: 場所 0x4b55c568 を読み込み中にアクセス違反が発生しました。
が発生します。
このような時にしっかり値を構造体配列にセットするにはどう修正すべきでしょうか。
御教授下さい。