#include <memory.h>
#include <stdio.h>
struct SomeArray {
int index;
char randompadding[5];
};
int main() {
const int XSIZE = 10;
const int YSIZE = 10;
SomeArray arr[XSIZE * YSIZE];
SomeArray arr2d[XSIZE][YSIZE];
int counter = 1;
::memset(arr, 0, sizeof(arr));
for (int y = 0; y < YSIZE; y++) {
for (int x = 0; x < XSIZE; x++) {
arr[XSIZE*y + x].index = counter++;
}
}
::memcpy(arr2d, arr, sizeof(arr));
for (int x = 0; x < XSIZE; x++) {
for (int y = 0; y < YSIZE; y++) {
printf("%d\n", arr2d[x][y].index);
}
}
}
I2luY2x1ZGUgPG1lbW9yeS5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCnN0cnVjdCBTb21lQXJyYXkgewogICAgaW50IGluZGV4OwogICAgY2hhciByYW5kb21wYWRkaW5nWzVdOwp9OwoKaW50IG1haW4oKSB7CiAgICBjb25zdCBpbnQgWFNJWkUgPSAxMDsKICAgIGNvbnN0IGludCBZU0laRSA9IDEwOwogICAgU29tZUFycmF5IGFycltYU0laRSAqIFlTSVpFXTsKICAgIFNvbWVBcnJheSBhcnIyZFtYU0laRV1bWVNJWkVdOwogICAgaW50IGNvdW50ZXIgPSAxOwoKICAgIDo6bWVtc2V0KGFyciwgMCwgc2l6ZW9mKGFycikpOwoKICAgIGZvciAoaW50IHkgPSAwOyB5IDwgWVNJWkU7IHkrKykgewogICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgWFNJWkU7IHgrKykgewogICAgICAgICAgICBhcnJbWFNJWkUqeSArIHhdLmluZGV4ID0gY291bnRlcisrOwogICAgICAgIH0KICAgIH0KCiAgICA6Om1lbWNweShhcnIyZCwgYXJyLCBzaXplb2YoYXJyKSk7CgogICAgZm9yIChpbnQgeCA9IDA7IHggPCBYU0laRTsgeCsrKSB7CiAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBZU0laRTsgeSsrKSB7CiAgICAgICAgICAgIHByaW50ZigiJWRcbiIsIGFycjJkW3hdW3ldLmluZGV4KTsKICAgICAgICB9CiAgICB9Cn0K