2016-04-05 20 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スタイルの文字列があります。

関連する問題