Sun Studio 12 Update 1: C++ ユーザーズガイド

14.3.4 char* の抽出子

この定義済み抽出子は問題が起こる可能性があるため、ここで説明しておきます。この抽出子は次のように使用します。


char x[50];
cin >> x;

前述の例で、抽出子は先頭の空白を読み飛ばし、次の空白文字までの文字列を抽出して x にコピーします。次に、文字列の最後を示す NULL 文字 (0) を入れて文字列を完成します。ここで、入力文字列が指定した配列からあふれる可能性があることに注意してください。

さらに、ポインタが、割り当てられた記憶領域を指していることを確認する必要があります。次に示すのは、よく発生するエラーの例です。


char * p; // not initialized
cin >> p;

入力データが格納される場所が特定されていません。これによって、プログラムが異常終了することがあります。