fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void init_matrix ( double* m, unsigned n )
  5. {
  6. unsigned i, j;
  7. for ( i = 0; i < n; i++ )
  8. {
  9. for ( j = 0; j < n; j++ )
  10. {
  11. m [ i * n + j ] = n;
  12. }
  13. }
  14. }
  15.  
  16. void display_matrix ( double* m, unsigned n )
  17. {
  18. unsigned i, j;
  19. for ( i = 0; i < n; i++ )
  20. {
  21. for ( j = 0; j < n; j++ )
  22. {
  23. printf ("%3.0lf", m [ i * n + j ] );
  24. }
  25. putchar('\n');
  26. }
  27. putchar('\n');
  28. }
  29.  
  30. void free_matrix ( double* m )
  31. {
  32. free ( m );
  33. }
  34.  
  35. int main(void)
  36. {
  37. double* M = NULL;
  38. const int nmax = 10;
  39. int x, y, n;
  40.  
  41. for ( n = 1; n <= nmax; n++ )
  42. {
  43. double* temp = realloc ( M, n * n * sizeof(double));
  44. if ( temp == NULL )
  45. {
  46. // realloc liefert NULL -> Fehlerbehandlung
  47. // Zugriff auf M möglich, um z.B. die Daten zu retten, etc.
  48. }
  49. else
  50. {
  51. M = temp; // Oki doki
  52. }
  53.  
  54. init_matrix ( M, n );
  55. display_matrix ( M, n );
  56. }
  57.  
  58. free ( M );
  59. return 0;
  60. }
Success #stdin #stdout 0s 1964KB
stdin
Standard input is empty
stdout
  1

  2  2
  2  2

  3  3  3
  3  3  3
  3  3  3

  4  4  4  4
  4  4  4  4
  4  4  4  4
  4  4  4  4

  5  5  5  5  5
  5  5  5  5  5
  5  5  5  5  5
  5  5  5  5  5
  5  5  5  5  5

  6  6  6  6  6  6
  6  6  6  6  6  6
  6  6  6  6  6  6
  6  6  6  6  6  6
  6  6  6  6  6  6
  6  6  6  6  6  6

  7  7  7  7  7  7  7
  7  7  7  7  7  7  7
  7  7  7  7  7  7  7
  7  7  7  7  7  7  7
  7  7  7  7  7  7  7
  7  7  7  7  7  7  7
  7  7  7  7  7  7  7

  8  8  8  8  8  8  8  8
  8  8  8  8  8  8  8  8
  8  8  8  8  8  8  8  8
  8  8  8  8  8  8  8  8
  8  8  8  8  8  8  8  8
  8  8  8  8  8  8  8  8
  8  8  8  8  8  8  8  8
  8  8  8  8  8  8  8  8

  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9
  9  9  9  9  9  9  9  9  9

 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10
 10 10 10 10 10 10 10 10 10 10