调试断言失败(缓冲区太小)构造函数初始化

时间:2016-04-05 12:31:10

标签: c++ oop

我写了一个代码......我不得不使用" strcpy_s"在它...程序正在编译,但我得到调试断言失败...我研究了一下,发现这个错误是由于" strcpy_s"参数...但我仔细检查了一下,我的尺寸还可以......我无法理解为什么它不能正常工作......任何帮助都会受到欢迎......期待的感谢...还有一个我需要在构造函数本身初始化构造函数成员(它在我的项目中指示...)

来自头文件

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

public:
CyclicShift();

在.cpp文件中(初始化构造函数)

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

1 个答案:

答案 0 :(得分:4)

char个缓冲区的长度必须为char长。对于26个字母的字母,加上一个尾随的&0;&0; chararacter,所有C风格的字符串都有。