#include <stdio.h>
#include <stdlib.h>
void init_matrix ( double* m, unsigned n )
{
unsigned i, j;
for ( i = 0; i < n; i++ )
{
for ( j = 0; j < n; j++ )
{
m [ i * n + j ] = n;
}
}
}
void display_matrix ( double* m, unsigned n )
{
unsigned i, j;
for ( i = 0; i < n; i++ )
{
for ( j = 0; j < n; j++ )
{
printf ("%3.0lf", m
[ i
* n
+ j
] ); }
}
}
void free_matrix ( double* m )
{
}
int main(void)
{
double* M = NULL;
const int nmax = 10;
int x, y, n;
for ( n = 1; n <= nmax; n++ )
{
double* temp
= realloc ( M
, n
* n
* sizeof(double)); if ( temp == NULL )
{
// realloc liefert NULL -> Fehlerbehandlung
// Zugriff auf M möglich, um z.B. die Daten zu retten, etc.
}
else
{
M = temp; // Oki doki
}
init_matrix ( M, n );
display_matrix ( M, n );
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnZvaWQgaW5pdF9tYXRyaXggKCBkb3VibGUqIG0sIHVuc2lnbmVkIG4gKQp7CiAgICB1bnNpZ25lZCBpLCBqOwoJZm9yICggaSA9IDA7IGkgPCBuOyBpKysgKQoJewoJCWZvciAoIGogPSAwOyBqIDwgbjsgaisrICkKCQl7CgkJCW0gWyBpICogbiArIGogXSA9IG47CgkJfQoJfQp9Cgp2b2lkIGRpc3BsYXlfbWF0cml4ICggZG91YmxlKiBtLCB1bnNpZ25lZCBuICkKewoJdW5zaWduZWQgaSwgajsKCWZvciAoIGkgPSAwOyBpIDwgbjsgaSsrICkKCXsKCQlmb3IgKCBqID0gMDsgaiA8IG47IGorKyApCgkJewoJCQlwcmludGYgKCIlMy4wbGYiLCBtIFsgaSAqIG4gKyBqIF0gKTsKCQl9CgkJcHV0Y2hhcignXG4nKTsKCX0KCXB1dGNoYXIoJ1xuJyk7Cn0KCnZvaWQgZnJlZV9tYXRyaXggKCBkb3VibGUqIG0gKQp7CglmcmVlICggbSApOwp9CgppbnQgbWFpbih2b2lkKQp7Cglkb3VibGUqIE0gPSBOVUxMOwoJY29uc3QgaW50IG5tYXggPSAxMDsKCWludCB4LCB5LCBuOwoKCWZvciAoIG4gPSAxOyBuIDw9IG5tYXg7IG4rKyApCgl7CgkJZG91YmxlKiB0ZW1wID0gcmVhbGxvYyAoIE0sIG4gKiBuICogc2l6ZW9mKGRvdWJsZSkpOwoJCWlmICggdGVtcCA9PSBOVUxMICkKCQl7CgkJCS8vIHJlYWxsb2MgbGllZmVydCBOVUxMIC0+IEZlaGxlcmJlaGFuZGx1bmcKCQkJLy8gWnVncmlmZiBhdWYgTSBtw7ZnbGljaCwgdW0gei5CLiBkaWUgRGF0ZW4genUgcmV0dGVuLCBldGMuCgkJfQoJCWVsc2UKCQl7CgkJCU0gPSB0ZW1wOyAvLyBPa2kgZG9raQoJCX0KCgkJaW5pdF9tYXRyaXggKCBNLCBuICk7CgkJZGlzcGxheV9tYXRyaXggKCBNLCBuICk7Cgl9CgoJZnJlZSAoIE0gKTsKCXJldHVybiAwOwp9