次のプログラムは重大な誤りを含んでいます。ひょっとしたらこれで正常に動作する環境もあるかもしれませんが、現実的には無理でしょう。第17問と同様、環境や状況によっては正常に動作しているように見えることがあるため、発見が遅れがちな誤りです。わかりますか?
#include <stdlib.h> typedef struct { char m_ch; int m_n; } MyType; void func(void) { MyType *p = (MyType *)malloc( sizeof(char) + sizeof(int) ); if ( p ) { p->m_ch = 'a'; p->m_n = 100; free( p ); } }
<< 問題一覧に戻る
(「C言語実力診断クイズ」は2001年5月から9月にかけて作成されたコンテンツです。)