#include <stdio.h>
#include <stdlib.h>
int main(void)
{
// Последнее измерение известно.
int razmer;
// array - указатель на массив, состоящий из массивов по 5 char.
char (*array
)[][5] = calloc(razmer
* 5, sizeof(char)); for (int i = 0; i < razmer; i++) {
for (int j = 0; j < 5; j++) {
// Звездочка нужна, чтобы разыменовать указатель на массив.
(*array)[i][j] = 'A' + i;
}
}
printf("Array 1: %.*s\n", razmer
* 5, array
);
// Оба измерения неизвестны.
int m, n;
char *array2
= calloc(m
* n
, sizeof(char)); for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
array2[i * n + j] = 'A' + i;
}
}
printf("Array 2: %.*s\n", m
* n
, array2
); }
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKHZvaWQpCnsKICAgIC8vINCf0L7RgdC70LXQtNC90LXQtSDQuNC30LzQtdGA0LXQvdC40LUg0LjQt9Cy0LXRgdGC0L3Qvi4KICAgIGludCByYXptZXI7CiAgICBzY2FuZigiJWkiLCAmcmF6bWVyKTsKICAgIC8vIGFycmF5IC0g0YPQutCw0LfQsNGC0LXQu9GMINC90LAg0LzQsNGB0YHQuNCyLCDRgdC+0YHRgtC+0Y/RidC40Lkg0LjQtyDQvNCw0YHRgdC40LLQvtCyINC/0L4gNSBjaGFyLgogICAgY2hhciAoKmFycmF5KVtdWzVdID0gY2FsbG9jKHJhem1lciAqIDUsIHNpemVvZihjaGFyKSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhem1lcjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCA1OyBqKyspIHsKICAgICAgICAgICAgLy8g0JfQstC10LfQtNC+0YfQutCwINC90YPQttC90LAsINGH0YLQvtCx0Ysg0YDQsNC30YvQvNC10L3QvtCy0LDRgtGMINGD0LrQsNC30LDRgtC10LvRjCDQvdCwINC80LDRgdGB0LjQsi4KICAgICAgICAgICAgKCphcnJheSlbaV1bal0gPSAnQScgKyBpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgcHJpbnRmKCJBcnJheSAxOiAlLipzXG4iLCByYXptZXIgKiA1LCBhcnJheSk7CiAgICBmcmVlKGFycmF5KTsKICAgIAogICAgLy8g0J7QsdCwINC40LfQvNC10YDQtdC90LjRjyDQvdC10LjQt9Cy0LXRgdGC0L3Riy4KICAgIGludCBtLCBuOwogICAgc2NhbmYoIiVpICVpIiwgJm0sICZuKTsKICAgIGNoYXIgKmFycmF5MiA9IGNhbGxvYyhtICogbiwgc2l6ZW9mKGNoYXIpKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbTsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspIHsKICAgICAgICAgICAgYXJyYXkyW2kgKiBuICsgal0gPSAnQScgKyBpOwogICAgICAgIH0KICAgIH0KICAgIAogICAgcHJpbnRmKCJBcnJheSAyOiAlLipzXG4iLCBtICogbiwgYXJyYXkyKTsKICAgIGZyZWUoYXJyYXkyKTsKfQo=