#include <stdio.h>
#include <stdlib.h>
void setzen (void *speicher, int zeilen, int spalten) {
int (*f)[spalten] = speicher;
for ( int count_zeilen = 0; count_zeilen < zeilen; count_zeilen++ ) {
for ( int count_spalten = 0; count_spalten < spalten; count_spalten++ ) {
f[count_zeilen][count_spalten] = count_zeilen + count_spalten;
}
}
}
void drucken (void *speicher, int zeilen, int spalten) {
int (*f)[spalten] = speicher;
for ( int count_zeilen = 0; count_zeilen < zeilen; count_zeilen++ ) {
for ( int count_spalten = 0; count_spalten < spalten; count_spalten++ ) {
printf ( "%3d", f
[count_zeilen
][count_spalten
] ); }
}
}
int main (void) {
int zeilen = 2;
int spalten = 2;
int *speicher
= malloc( zeilen
*spalten
*sizeof*speicher
);
setzen (speicher, zeilen, spalten);
drucken (speicher, zeilen, spalten);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KIAp2b2lkIHNldHplbiAodm9pZCAqc3BlaWNoZXIsIGludCB6ZWlsZW4sIGludCBzcGFsdGVuKSB7CglpbnQgKCpmKVtzcGFsdGVuXSA9IHNwZWljaGVyOwogICAgZm9yICggaW50IGNvdW50X3plaWxlbiA9IDA7IGNvdW50X3plaWxlbiA8IHplaWxlbjsgY291bnRfemVpbGVuKysgKSB7CiAgICAgICAgZm9yICggaW50IGNvdW50X3NwYWx0ZW4gPSAwOyBjb3VudF9zcGFsdGVuIDwgc3BhbHRlbjsgY291bnRfc3BhbHRlbisrICkgewogICAgICAgICAgICBmW2NvdW50X3plaWxlbl1bY291bnRfc3BhbHRlbl0gPSBjb3VudF96ZWlsZW4gKyBjb3VudF9zcGFsdGVuOwogICAgICAgIH0KICAgIH0KfQoKdm9pZCBkcnVja2VuICh2b2lkICpzcGVpY2hlciwgaW50IHplaWxlbiwgaW50IHNwYWx0ZW4pIHsKCWludCAoKmYpW3NwYWx0ZW5dID0gc3BlaWNoZXI7CiAgICBmb3IgKCBpbnQgY291bnRfemVpbGVuID0gMDsgY291bnRfemVpbGVuIDwgemVpbGVuOyBjb3VudF96ZWlsZW4rKyApIHsKICAgICAgICBmb3IgKCBpbnQgY291bnRfc3BhbHRlbiA9IDA7IGNvdW50X3NwYWx0ZW4gPCBzcGFsdGVuOyBjb3VudF9zcGFsdGVuKysgKSB7CiAgICAgICAgICAgIHByaW50ZiAoICIlM2QiLCBmW2NvdW50X3plaWxlbl1bY291bnRfc3BhbHRlbl0gKTsKICAgICAgICB9CiAgICAgICAgcHJpbnRmICgiXG4iKTsKICAgIH0KfQoKaW50IG1haW4gKHZvaWQpIHsKICAgIGludCB6ZWlsZW4gPSAyOwogICAgaW50IHNwYWx0ZW4gPSAyOwogICAgaW50ICpzcGVpY2hlciA9IG1hbGxvYyggemVpbGVuKnNwYWx0ZW4qc2l6ZW9mKnNwZWljaGVyICk7CiAKCXNldHplbiAgKHNwZWljaGVyLCB6ZWlsZW4sIHNwYWx0ZW4pOwogICAgZHJ1Y2tlbiAoc3BlaWNoZXIsIHplaWxlbiwgc3BhbHRlbik7CiAgICAKICAgIGZyZWUoIHNwZWljaGVyICk7CiAgICByZXR1cm4gMDsKfQo=