私のプラットフォームは Windows 7 x64 です。このコード:
#include <iostream>
#include <string>
#include <stdint.h>
#include <sstream>
using namespace std;
int main()
{
string line;
int c = 3;
while(c-- && getline(cin, line))
{
stringstream sstr;
sstr << line;
uint32_t data;
int r = sscanf(sstr.str().c_str(), "%d", &data);
if (r == 1)
{
cout << data << endl;
}
}
return 0;
}
入力として整数を取り、それらを出力して問題なく存在します。data
の型をに変更するとuint16_t
、main() 関数から戻る直前に、VS 2010 がエラーをスローします。
実行時チェックの失敗 #2 - 変数「データ」の周りのスタックが壊れていた
なぜVS 2010がそんなに怒っているのだろうと思っていましたuint16_t
か?説明はありますか?