2016-04-05 61 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风格的字符串都有。