ホーム » MFC » std::vector::data()

2021年5月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

カテゴリー

アーカイブ

ブログ統計情報

  • 79,201 アクセス



std::vector::data()

今まで VC 14 リリース版などでは通っていたコード.
VC 8 でビルドした exe で,配列の要素が空の時に終了してしまう.

	MapiMessage	message ;
	memset(&message,0,sizeof(message)) ;
	message.nFileCount	= ULONG(fileDescA.size()) ;
	message.lpFiles		= &fileDescA[0] ;
	message.nRecipCount	= ULONG(recipDescA.size()) ;
	message.lpRecips	= &recipDescA[0] ;

vector subscript out of range
&fileDescA[0] で vector の先頭を参照することがうまくないみたい.
次の様に data() を使える環境ならば良さそう.

	message.nFileCount	= ULONG(fileDescA.size()) ;
	message.lpFiles		= fileDescA.data() ;

使えない場合は,空でないことを確認する必要がある?

    if (fileDescA.size() > 0) {
	message.nFileCount	= ULONG(fileDescA.size()) ;
	message.lpFiles		= &fileDescA[0] ;
	}
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

%d人のブロガーが「いいね」をつけました。