1. C++では変数宣言がブロックの先頭に縛られないからなるべく使用するところで宣言するようにしろ。
宣言と同時に初期化できるのならそうするとなお良い。forで使うカウンタもfor内で宣言できる。for (int i = 0; i < N; i++)

2. フラグにはboolとtrue/falseを使え。

3. #defineは使わなくても済むなら消せ。
const使えば定数になる。つまり配列の添え字にも使える。
関数にinlineを付ければ(inline int f()など)コンパイル時にインライン展開される。

4. void *からその他のポインタ型への変換にはキャストが必要になった。(逆はC++でも平気) mallocなどには注意。

5. キャストもC++形式にしろ。今までのキャストは次のどれかに分類できる。(いくつか複合している場合もあるが)
const_cast(const外し)、reinterpret_cast(ポインタ←→整数など)、static_cast(その他一般)
static_castはdouble←→intとかvoid *→その他のポインタ型とかそういうときに使う。

6. malloc/freeの代わりにnew/delete new[]/delete[]を使え。