char ポインターへの動的メモリ割り当てに関連する奇妙な問題があります。私は次のようなものを持っています
char *input = new char; //1
gets(input) //2
char *dest = new char; //3
ステップ 3 で、実行時にヒープ破損エラーが発生します。これは、入力する文字列の長さが 23 文字を超える場合にのみ発生します。
新しい操作をしなければ問題ありません。
指定すると、この問題は解決します
char *input = new char[100];
しかし、ユーザーの入力に基づいて入力を動的にしたいのです。
この場合の 24 バイトの役割はわかりません。100文字または数n文字に制限したくありません...メモリ割り当てが苦手です...誰かがこのシナリオを説明できますか?