e38.c

強引なキャストは事故のもと


/* 修正前 */ short val = (short)NULL ; char buf[100]; memset((char *)buf[0],0,sizeof(buf));
/* 修正後 */ short val = 0 ; memset(&buf[0],0,sizeof(buf));
/* 更に修正 */ short val = 0 ; memset(buf,0,sizeof(buf));

解説 アドレスを、半分削ってしまっていいの? 例えば、 東京都千代田区0x12345678番地を 東京都千代田区0x5678 番地にして、 手紙が届きますか? C-FAQ 4.14J C-FAQ 4.14E を参照して下さい。