mallocで確保したメモリを、100x200の2次元配列だとおもってa[m][n]のようにアクセスしたいので、
    int* p = (int*)malloc(100*200*sizeof(int));
...
    typedef int A[100][200];
    A* a = (A*)p;    
のようなコードを書いたのですが、これだと使うときに(*a)[0][0]のように*が必要になってしまいます。
どうにか、*を使わずにa[0][0]のように書く方法はないでしょうか。

C++はNGです。