2015-06-06 247 views
2

我對這個網站不熟悉,請忽略下面的include部分。C中的Visual Studio錯誤,0xfefefefe處未處理的異常

我正在學習如何編寫C在Visual Studio中,這裏是我的代碼,

#include<stdio.h> 

int main() { 
    char me[20]; 

    printf("What is your name?"); 
    scanf_s("%s", me); 
    printf("darn glad to meet you, %s!\n", me); 

    return(0); 
} 

現在,輸入所有後,我得到一個錯誤的Project14.exe在0xFEFEFEFE彈出「未處理的異常:0xC00001A5:檢測到一個無效的異常處理程序例程(參數:0x00000003)「

有人可以幫我。謝謝

回答

3

您正在使用scanf_s()錯誤。該方法described in MSDNscanf_s("%s", me, sizeof me);

而且你真的應該檢查函數的返回值

if (scanf_s("%s", me, (unsigned)sizeof me) != 1) /* error */; 

還要注意的是,MSDN描述和C11 Standard description只有除了MSDN未告知您該功能的細微差別符合標準的實現可選。如果您打算在Windows以外的地方運行您的代碼,您可能需要添加檢查功能的存在或使用其他方式獲取用戶輸入。

#ifdef __STDC_LIB_EXT1__ 
// use Annex K functions at will 
#else 
// do not use Annex K functions 
#endif 
+0

MSVC注:[大小參數的類型的無符號,不size_t型](https://msdn.microsoft.com/en-us/library/w40768et.aspx),(但使用標準'爲size_t ') – BLUEPIXY

+0

謝謝@BLUEPIXY,回答編輯。 – pmg