#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
int main()
{
int n = 2;
int m = 3;
// int i[2][3] = { {1, 2, 3}, {4, 5, 6} };
int * i
= malloc(sizeof(int) * n
* m
); // i[n][m] for(int j = 0; j < n * m; ++j) i[j] = j + 1;
for(int j = 0; j < n; ++j)
{
for(int k = 0; k < m; ++k)
printf("%d ", *(i
+ j
* m
+ k
)); }
int (*ii)[m] = (int(*)[m]) i;
for(int j = 0; j < n; ++j)
{
for(int k = 0; k < m; ++k)
}
ii = (int(*)[m]) i;
printf("i: %" PRIuPTR
"\n", i
); printf("ii: %" PRIuPTR
"\n", ii
); printf("sizeof(i): %" PRIuPTR
"\n", sizeof(i
)); printf("sizeof(ii): %" PRIuPTR
"\n", sizeof(ii
)); printf("sizeof(*ii): %" PRIuPTR
"\n", sizeof(*ii
)); }
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPGludHR5cGVzLmg+CgppbnQgbWFpbigpCnsKCWludCBuID0gMjsKCWludCBtID0gMzsKLy8JaW50IGlbMl1bM10gPSB7IHsxLCAyLCAzfSwgezQsIDUsIDZ9IH07CglpbnQgKiBpID0gbWFsbG9jKHNpemVvZihpbnQpICogbiAqIG0pOwkvLyBpW25dW21dCglmb3IoaW50IGogPSAwOyBqIDwgbiAqIG07ICsraikgaVtqXSA9IGogKyAxOwoJZm9yKGludCBqID0gMDsgaiA8IG47ICsraikKCXsKCQlmb3IoaW50IGsgPSAwOyBrIDwgbTsgKytrKQoJCQlwcmludGYoIiVkICIsICooaSArIGogKiBtICsgaykpOwoJCXByaW50ZigiXG4iKTsKCX0KCglpbnQgKCppaSlbbV0gPSAoaW50KCopW21dKSBpOwoJZm9yKGludCBqID0gMDsgaiA8IG47ICsraikKCXsKCQlmb3IoaW50IGsgPSAwOyBrIDwgbTsgKytrKQoJCQlwcmludGYoIiVkICIsIGlpW2pdW2tdKTsgCgkJcHJpbnRmKCJcbiIpOwoJfQoJaWkgPSAoaW50KCopW21dKSBpOwoJcHJpbnRmKCJpOiAlIiBQUkl1UFRSICJcbiIsIGkpOwoJcHJpbnRmKCJpaTogJSIgUFJJdVBUUiAiXG4iLCBpaSk7CglwcmludGYoInNpemVvZihpKTogJSIgUFJJdVBUUiAiXG4iLCBzaXplb2YoaSkpOwoJcHJpbnRmKCJzaXplb2YoaWkpOiAlIiBQUkl1UFRSICJcbiIsIHNpemVvZihpaSkpOwoJcHJpbnRmKCJzaXplb2YoKmlpKTogJSIgUFJJdVBUUiAiXG4iLCBzaXplb2YoKmlpKSk7CglmcmVlKGkpOwp9