#include <stdio.h>
#include <string.h>
int main(void)
{
int array[][3] = { {1,2,3}, {4,5,6}, {7,8,9} };
int *p_array = (int*) array;
for (int i = 0; i < 9; i++) {
printf("%-10s %08p: %016p\n", i
== 0 ? "array" : "", &p_array
[i
], p_array
[i
]); }
printf("%-10s %08p: %016p\n", "p_array", &p_array
, p_array
);
int array1[] = { 11, 12 };
int array2[] = { 13, 14, 15, 16 };
int array3[] = { 17, 18, 19 };
int *array_pointers[] = { array1, array2, array3 };
int *array_pointers2 = (int*) array_pointers;
for (int i = 0; i < sizeof(array1) / sizeof(array1[0]); i++) {
printf("%-10s %08p: %016p\n", i
== 0 ? "array1" : "", &array1
[i
], array1
[i
]); }
for (int i = 0; i < sizeof(array2) / sizeof(array2[0]); i++) {
printf("%-10s %08p: %016p\n", i
== 0 ? "array2" : "", &array2
[i
], array2
[i
]); }
for (int i = 0; i < sizeof(array3) / sizeof(array3[0]); i++) {
printf("%-10s %08p: %016p\n", i
== 0 ? "array3" : "", &array3
[i
], array3
[i
]); }
for (int i = 0; i < sizeof(array_pointers) / sizeof(array_pointers[0]); i++) {
printf("%-10s %08p: %016p\n", i
== 0 ? "array_poin" : "", &array_pointers
[i
], array_pointers
[i
]); }
printf("%-10s %08p: %016p\n", "array_poi2", &array_pointers2
, array_pointers2
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBtYWluKHZvaWQpCnsKICAgIGludCBhcnJheVtdWzNdID0geyB7MSwyLDN9LCB7NCw1LDZ9LCB7Nyw4LDl9IH07CiAgICBpbnQgKnBfYXJyYXkgPSAoaW50KikgYXJyYXk7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCA5OyBpKyspIHsKICAgICAgICBwcmludGYoIiUtMTBzICUwOHA6ICUwMTZwXG4iLCBpID09IDAgPyAiYXJyYXkiIDogIiIsICZwX2FycmF5W2ldLCBwX2FycmF5W2ldKTsKICAgIH0KCiAgICBwcmludGYoIiUtMTBzICUwOHA6ICUwMTZwXG4iLCAicF9hcnJheSIsICZwX2FycmF5LCBwX2FycmF5KTsKICAgIAogICAgaW50IGFycmF5MVtdID0geyAxMSwgMTIgfTsKICAgIGludCBhcnJheTJbXSA9IHsgMTMsIDE0LCAxNSwgMTYgfTsKICAgIGludCBhcnJheTNbXSA9IHsgMTcsIDE4LCAxOSB9OwoKICAgIGludCAqYXJyYXlfcG9pbnRlcnNbXSA9IHsgYXJyYXkxLCBhcnJheTIsIGFycmF5MyB9OwogICAgaW50ICphcnJheV9wb2ludGVyczIgPSAoaW50KikgYXJyYXlfcG9pbnRlcnM7CgogICAgcHV0Y2hhcignXG4nKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihhcnJheTEpIC8gc2l6ZW9mKGFycmF5MVswXSk7IGkrKykgewogICAgICAgIHByaW50ZigiJS0xMHMgJTA4cDogJTAxNnBcbiIsIGkgPT0gMCA/ICJhcnJheTEiIDogIiIsICZhcnJheTFbaV0sIGFycmF5MVtpXSk7CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplb2YoYXJyYXkyKSAvIHNpemVvZihhcnJheTJbMF0pOyBpKyspIHsKICAgICAgICBwcmludGYoIiUtMTBzICUwOHA6ICUwMTZwXG4iLCBpID09IDAgPyAiYXJyYXkyIiA6ICIiLCAmYXJyYXkyW2ldLCBhcnJheTJbaV0pOwogICAgfQoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZW9mKGFycmF5MykgLyBzaXplb2YoYXJyYXkzWzBdKTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlLTEwcyAlMDhwOiAlMDE2cFxuIiwgaSA9PSAwID8gImFycmF5MyIgOiAiIiwgJmFycmF5M1tpXSwgYXJyYXkzW2ldKTsKICAgIH0KCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemVvZihhcnJheV9wb2ludGVycykgLyBzaXplb2YoYXJyYXlfcG9pbnRlcnNbMF0pOyBpKyspIHsKICAgICAgICBwcmludGYoIiUtMTBzICUwOHA6ICUwMTZwXG4iLCBpID09IDAgPyAiYXJyYXlfcG9pbiIgOiAiIiwgJmFycmF5X3BvaW50ZXJzW2ldLCBhcnJheV9wb2ludGVyc1tpXSk7CiAgICB9CgogICAgcHJpbnRmKCIlLTEwcyAlMDhwOiAlMDE2cFxuIiwgImFycmF5X3BvaTIiLCAmYXJyYXlfcG9pbnRlcnMyLCBhcnJheV9wb2ludGVyczIpOwoKICAgIHJldHVybiAwOwp9Cg==