2016-04-05 79 views
0

我寫了一個代碼...我不得不在其中使用「strcpy_s」...程序正在編譯,但我得到調試斷言失敗...我研究了一個發現這個錯誤是由於「strcpy_s」參數中的大小不正確引起的......但是我仔細檢查了一下,我的大小沒問題......我不明白爲什麼它不工作......任何幫助都會受到歡迎。 ...預計感謝......還有一件事我需要初始化在構造函數本身的構造成員(它的指示在我的項目...)調試斷言失敗(緩衝區太小)構造函數初始化

從頭文件

class CyclicShift 
{ 
private: 
char fUpperCase[26];//A-Z 
char fLowerCase[26];//a-z 

public: 
CyclicShift(); 

在。 cpp fi樂(初始化構造函數)

CyclicShift::CyclicShift() 
{ 
strcpy_s(fUpperCase, sizeof (fUpperCase), "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
strcpy_s(fLowerCase, sizeof (fLowerCase), "abcdefghijklmnopqrstuvwxyz"); 
} 
+2

爲什麼不使用'std :: string'? – NathanOliver

回答

4

char緩衝區必須是27 char悠久。對於字母表中的26個字母,加上一個尾隨的'\ 0'字符,表示所有C風格的字符串都有。