【已經無法使用】
Google官方表示不歡迎...所以也不更新了 :PPreview:
Link Here
#include <cstring> // for memcpy #define NEW2D(H, W, T) (T **)new2d(H, W, sizeof(T)) #define CPY2D(TAR, SRC, H, W, T) cpy2d((void**)TAR, (void**)SRC, H, W, sizeof(T)) #define DEL2D(P) (delete [] P) void cpy2d(void** tar, void** src, int h, int w, int size) { for (register int i = 0; i < h; i++) memcpy(tar[i], src[i], size * w); } void* new2d(int h, int w, int size) { register int i; void **p; p = (void**)new char[h * sizeof(void*) + h * w * size]; for(i = 0; i < h; i++) p[i] = ((char *)(p + h)) + i * w * size; return p; }
int **map = NEW2D(16, 32, int); // Height, Width, Type scanf("%d", &map[15][31]); printf("%d\n", map[15][31] + 1); int **map2 = NEW2D(16, 32, int); // Another 2D array CPY2D(map2, map, 16, 32, int); // Copy to another array printf("%d\n", map2[15][31] + 2); DEL2D(map); // Free meory DEL2D(map2);From... Here (in Chinese)