>>738は初心者風というか、まだわかるけど
>>744はもうなんていうか酷い
突っかかっといてこれってどうよ

forで開放するのが面倒だからとそんなどうでもよいこと考えて
トリッキーなこと考える暇があるんなら
もっと簡単にこう↓書けば済むだけの話なのに

int (*a)[640] = new int [480][640]; //確保
//↓使う
for( int y = 0; y < 480; ++y )
for( int x = 0; x < 640; ++x )
{
  a[y][x] = 0;
}
delete[] a; //解放

これなら初心者でも全然わかるし、確保にも開放にもfor文いらない
圧倒的シンプル
もともとC++はこうして使うことを想定して文法が作られている
まったくの既定路線、標準的解法
シンプルにしたい場合、まずこれが思いつかなきゃダメ
ここがスタート地点、場合によってはゴール

なんで糞なテクニックを使いたがるのか、そして教えたがるのか
中途半端に改良した結果糞で何がしたいのかわからない