>>757
> int i;
> int *p, *pp;
>
> // OKな場合
> pp = &i;
> pp++; // iがint型なので、int幅でアドレスがインクリメントされてちょうどいい
>
> // NGな場合
> pp = &p;
> pp++; // *pはあくまで(int *)型であり、int型のアドレス幅ではないので、
> // int幅でアドレスがインクリメントされちゃうと非常によろしくない
>
> ってことですよね?

悪いけど、こういう書き方されても、
理解できてないとしか思えない。

まず、ppの定義を
int **pp;
として、>>757をもう一度書いてみてよ。
ppが不適切であればpに書き換えるなどしてよ。