入力した文字列を、malloc等で作った動的メモリに保存して、
1文字ずつ扱えるようにしたいのですが、

入力する文字列を保存する変数には最初に、
char c[256];
のようにメモリを確保しないとバッファオーバーフローがおき、
問題がありますよね?

メモリの動的確保の目的が、メモリの効率的な利用なのはわかりますが、
この入力する文字列のメモリ確保の無駄は、
オーバーフローを防ぐためには仕方がないのでしょうか?

また、メモリ確保の無駄を無くすために、宣言時に
char c;
として、故意にバッファオーバーフローを起こさせるのは、
やはりプログラム的にはNGですよね?

よろしくお願いします。