文字列としてコンボボックスに値を追加しています。以下は私のコードです。
プラットフォーム WindowsXPと私はMicrosoftVisualStudio2003を使用しています
言語C++
エラーが発生しました->「ランタイムチェックの失敗#2-変数「バッファ」の周りのスタックが破損しました。」
バッファのサイズを4以上に増やすと、このエラーは発生しません。
私の質問はそのエラーを修正する方法とは関係ありませんが、バッファサイズ=2の場合になぜこのエラーが発生したのか疑問に思っています。
私の論理によれば、char[0]はchar[1] = nullで終了する文字のバルブを格納するため、バッファサイズ=2を指定しました。
charは0から255までの値を格納できるので、挿入された値は1から63まで、次に183から200までなので、これで問題ないと思いました。
CComboBox m_select_combo;
const unsigned int max_num_of_values = 63;
m_select_combo.AddString( "ALL" );
for( unsigned int i = 1; i <= max_num_of_values ; ++i )
{
char buffer[2];
std::string prn_select_c = itoa( i, buffer, 10 );
m_select_combo.AddString( prn_select_c.c_str() );
}
const unsigned int max_num_of_high_sats = 202 ;
for( unsigned int i = 183; i <= max_num_of_high_sats ; ++i )
{
char buffer[2];
std::string prn_select_c = itoa( i, buffer, 10 );
m_select_combo.AddString( prn_select_c.c_str() );
}
何がわからないのか教えていただけませんか?