1. ホーム

アクセス違反の読み取り位置 ファイルやオブジェクトを書き込む関数にベクターを渡すとエラーになる

2022-02-10 09:53:44

この問題の解決策を見つけるのに時間がかかったので、二度と同じことをしないように文書化します。

ここでは、FINGERPRINT構造体型を保持するベクターを定義し、そのベクターに数値データを持たせ、そのベクターをオブジェクトに書き込みたいのですが、これはファイルへの書き込みと解釈することもできます。

間違った使い方はこれ

WriteData(con,finger_guid,finger_file_pos,(void*)(&vfinger),sizeof(FINGERPRINT)*number);

すると、上記のようなエラーが報告されます。

に変更します。

for (_int32_t i=0;i<number;i++)
{ <未定義
WriteData(con,finger_guid,finger_file_pos+i*sizeof(FINGERPRINT),(void*)(&vfinger[i]),sizeof(FINGERPRINT)) を実行。
}

で、完了です。以前、ベクターをファイルに書き込む方法を見た記憶があるのですが、このような方法でした。