参照とかヌルポインタとか。
void func( int &hoge) { hoge = 1; } int main() { int *p = 0; func( *p); return 0; }
何の表示も行いませんが、エラーはばっちり出ます(実行時に)。
BCC5.5とVC++2008EEで確認。
「アドレス0x000... でアクセス違反が・・・」と、そんな感じ。
そこで、func()内でhogeのアドレスが有効かどうかを最初に確かめて、
無効だったら例外を投げるなり、falseを返すなり(何もしないなり)するべきなんですね。
せっかく参照にしたのにそういう問題に当たるなんて、「・・・」な気分です。
参照なんてポインタの劣化コピーじゃないかよと。