2012-01-23 20 views
1

私は自分のコードをLinuxで実行しています。 strchr()関数にNULLが渡されたときに私のプログラムが中止されるのが見えます。これは、AIXで実行しているときには発生しないようです。strchr()でNULLが渡された場合はどうですか?

誰でもこの違いがstrchr()の動作の違いを伝えることはできますか? NULLを渡したときに

おかげ

+1

どのプログラミング言語を使用していますか?この関数はサーバ言語で存在します.. – rauschen

+0

私が使用しているプログラミング言語はC++ –

答えて

0

)strchrの仕様(そのためには、その異なる実装は、ええと、その場合のために別々にそれを実装するのは自由です、「正しい」動作を指定しません。 (ちょっと興味があります:NULLを渡すと、AIXのバージョンはどうなりますか?)

+0

です。AIXでは、strchr()にNULLを渡すと、NULLを返し、プログラムは中断することなく実行されます。 –

+3

より正確には、動作は未定義であるため、実装は一貫している必要はありません。クラッシュするかNULLを返すかは、動作に準拠しています。あなたの鼻から悪魔を飛ばすことです。 –

関連する問題