char data[1000];
int a = 0;
void *p = data;
*(int*)p = a;

これでvoidポインタpが差すアドレスを進めたいのですが、
*(int*)p++ = a;
をやると怒られます・・・「'void *' サイズが不明です」
次の行で
p = (int*)p + 1;
をやればいいのですが、もっとスマートな書き方はありますか?