c++ - セグメンテーション違反と実行時エラー[重複]

c++ compiler-errors segmentation-fault

Possible Duplicate:
Modifying value of char pointer in c produces segfault




これはコードの一部です...

void main()
{
    char *p="Hello";
    *p= 'h';                      // Segmentation fault .
}


セグメンテーション違反があり、実行時エラーも発生するという事実を理解しています。しかし、なぜそれが実行時エラーなのでしょうか?プログラムを実行する前にコンパイラが教えてくれないのはなぜですか?なぜコンパイル時間エラーが表示されないのですか?

PS:私はVisual C++ 2005 Expressを使用しています。
答え
文字列リテラルは実際にはタイプchar const*です。ただし、const-correctではない古いCコードとの互換性のために、C++では、それらをchar*に割り当てることができます。これは、実際にそれらを変更することが許可されているという意味ではありません。
関連記事

c++ - NVCCにx64オブジェクトを生成するように指示するにはどうすればよいですか?

c++ - LuaPlus Metatablesの初心者向け質問

c++ - 明示的な型変換の要件

c++ - ペアベクトルc++の上限

c++ - setjmpがスタックを保存しないのはなぜですか?

c++ - coutをキャプチャして関数にリダイレクトする

c++ - Eclipseを使用してMySQLをC++に接続しますか?

c++ - C++用のどのXSLTプロセッサーですか?

c++ - オブジェクト指向プログラミング-メンバーとしての変数、またはグローバルとしてのヘッダーのみ?

c++ - TinyXmlパーサーはファイルを正しくロードすることを拒否します