0
C++では、クラスのインスタンス化時にcharの配列を渡しているときに、入ってくる文字の数が不明な場合にオーバーフローを防ぐためにコピーされたバイトに上限を設定できますか?コンストラクタの初期化を使用するクラスコンストラクタにcharの配列を渡すときのオーバーフローを防止しますか?
私の実装はユーザの入力に基づいていないので、それはうまくいくことはわかっていますが、一般的な知識は不思議です。
(this postから)
class test2 {
char name[40];
public:
test2() : name("Standard") {};
void display() { cout << name << endl; }
};
追記として、(this postの編集されたバージョン)
class test2 {
char name[40];
public:
test2(const char *charsComingIn) : name(charsComingIn) {};
void display() { cout << name << endl; }
};
は、私は第二の例をテストしていませんが、それは私が現時点で何をしようとしているの要旨です。どのような修正も実装の概念に歓迎されています。
'const char *'から 'char [40]'を初期化することはできません。問題は回避されました! –
'strncpy'があります。通常、これは 'std :: string'のような管理されたソリューションより劣っているとみなされます。 –
文字の配列を渡していません。 – immibis