0
我的平臺是Windows 7 x64。此代碼:VS變量周圍的報告堆棧已損壞
#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()函數返回前,相較於2010年拋出一個錯誤:
運行時檢查失敗#2 - 堆棧周圍的變量「數據」被損壞
我想知道爲什麼VS 2010在uint16_t
很生氣?任何解釋?
那麼,你的平臺上'int'的大小是多少? – 2013-03-06 18:47:06
作爲奧利說,我的猜測將是整數大小 – 2013-03-06 18:47:54
它是4字節@OliCharlesworth – Donotalo 2013-03-06 18:48:17