くりかえしになるけど sizeof(int) != sizeof(void*)
char a[1];
int* p = NULL;
a[0] = NULL; /* 個人的に、この記述は嫌 */

両方整合できる NULL 定義できてるかな?

--------------------------
#define NULL (0)
#define NULL ((void*)0)