すこししてみて疑問がでたのですが
cube[500][500][500]
としたいとき
double (*cube)[500][500];

cube = (double (*)[500][500])malloc(sizeof(double) * 500 * 500* 500);
だとおもうんですが
mallocのところを

malloc(sizeof(double) * 500 * 500* 500);
    ↓
malloc(sizeof(double) );

のようにしてもアドレスはうまくいってるようなんですがこれはやっぱだめなんでしょうか?