#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ARRAY_ELEMENT(ARRAY, Y, X, STRIDE) ARRAY[(Y) * STRIDE + (X)]
int main(void)
{
unsigned int base;
unsigned int y, x, offsetX, offsetY;
int *arr = NULL;
unsigned int arrSize = 0;
unsigned int arrStride = 0;
// Allocate memory for an array.
arrSize = base * base * base * base * sizeof(int);
arrStride = base * base;
// Initialize array.
// Fill value
for(y = 0; y < base; ++y)
{
for(x = 0; x < base; ++x)
{
offsetY = y * base;
offsetX = x * base;
ARRAY_ELEMENT(arr, offsetY + y, offsetX + x, arrStride) = 1;
}
}
// Print out.
for(y = 0; y < base * base; ++y)
{
for(x = 0; x < base * base; ++x)
{
printf("%d", ARRAY_ELEMENT
(arr
, y
, x
, arrStride
)); if((x + 1) % base == 0 && ((x + 1) / base) < base)
}
if((y + 1) % base == 0 && ((y + 1) / base) < base)
{
for(x = 0; x < base * base; ++x)
{
if((x + 1) % base == 0 && ((x + 1) / base) < base)
}
}
}
// Free up.
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKI2RlZmluZSBBUlJBWV9FTEVNRU5UKEFSUkFZLCBZLCBYLCBTVFJJREUpIEFSUkFZWyhZKSAqIFNUUklERSArIChYKV0KCmludCBtYWluKHZvaWQpCnsKICAgIHVuc2lnbmVkIGludCBiYXNlOwogICAgdW5zaWduZWQgaW50IHksIHgsIG9mZnNldFgsIG9mZnNldFk7CgogICAgaW50ICphcnIgPSBOVUxMOwogICAgdW5zaWduZWQgaW50IGFyclNpemUgPSAwOwogICAgdW5zaWduZWQgaW50IGFyclN0cmlkZSA9IDA7CgogICAgc2NhbmYoIiV1IiwgJmJhc2UpOwoKICAgIC8vIEFsbG9jYXRlIG1lbW9yeSBmb3IgYW4gYXJyYXkuCiAgICBhcnJTaXplID0gYmFzZSAqIGJhc2UgKiBiYXNlICogYmFzZSAqIHNpemVvZihpbnQpOwogICAgYXJyU3RyaWRlID0gYmFzZSAqIGJhc2U7CiAgICBhcnIgPSAoaW50ICopbWFsbG9jKGFyclNpemUpOwoKICAgIC8vIEluaXRpYWxpemUgYXJyYXkuCiAgICBtZW1zZXQoYXJyLCAwLCBhcnJTaXplKTsKCiAgICAvLyBGaWxsIHZhbHVlCiAgICBmb3IoeSA9IDA7IHkgPCBiYXNlOyArK3kpCiAgICB7CiAgICAgICAgZm9yKHggPSAwOyB4IDwgYmFzZTsgKyt4KQogICAgICAgIHsKICAgICAgICAgICAgb2Zmc2V0WSA9IHkgKiBiYXNlOwogICAgICAgICAgICBvZmZzZXRYID0geCAqIGJhc2U7CiAgICAgICAgICAgIEFSUkFZX0VMRU1FTlQoYXJyLCBvZmZzZXRZICsgeSwgb2Zmc2V0WCArIHgsIGFyclN0cmlkZSkgPSAxOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBQcmludCBvdXQuCiAgICBmb3IoeSA9IDA7IHkgPCBiYXNlICogYmFzZTsgKyt5KQogICAgewogICAgICAgIGZvcih4ID0gMDsgeCA8IGJhc2UgKiBiYXNlOyArK3gpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIiVkIiwgQVJSQVlfRUxFTUVOVChhcnIsIHksIHgsIGFyclN0cmlkZSkpOwogICAgICAgICAgICBpZigoeCArIDEpICUgYmFzZSA9PSAwICYmICgoeCArIDEpIC8gYmFzZSkgPCBiYXNlKQogICAgICAgICAgICAgICAgcHJpbnRmKCJ8Iik7CiAgICAgICAgfQogICAgICAgIGlmKCh5ICsgMSkgJSBiYXNlID09IDAgJiYgKCh5ICsgMSkgLyBiYXNlKSA8IGJhc2UpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIlxuIik7CiAgICAgICAgICAgIGZvcih4ID0gMDsgeCA8IGJhc2UgKiBiYXNlOyArK3gpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50ZigiLSIpOwogICAgICAgICAgICAgICAgaWYoKHggKyAxKSAlIGJhc2UgPT0gMCAmJiAoKHggKyAxKSAvIGJhc2UpIDwgYmFzZSkKICAgICAgICAgICAgICAgICAgICBwcmludGYoIisiKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CgogICAgLy8gRnJlZSB1cC4KICAgIGZyZWUoYXJyKTsKICAgIHJldHVybiAwOwp9