www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Beispielprogramm

matrix.c
/* matrix.c -- Matrix-Beispiel in C: Variable Zeilengroessen */
/*             Uebersetzen mit: gcc -Wall -o matrix matrix.c */

#include <stdlib.h>
#include <errno.h>
#include <stdio.h>

#define MAXROW 3
#define MAXCOL 3

void myerror(const char *msg) { (void)perror(msg); exit(1); }

int main(void) {
  double **matrix;
  int i, j;

  /* Platz fuer MAXROW Zeilen schaffen */
  matrix = (double **)malloc(MAXROW * sizeof(double *));
  if (!matrix)
    myerror("out of memory!");

  for (i=0; i<MAXROW; i++) {
    /* Platz fuer MAXCOL Spalten schaffen */
    double *row = (double *)malloc(MAXCOL * sizeof(double));
    if (!row)
      myerror("out of memory");

    /* Zeilen fuellen */
    for (j=0; j<MAXCOL; j++)
      row[j] = i*j;       /* Irgendeinen Wert */

    /* Zeiger auf diese Zeile speichern */
    matrix[i] = row;      /* Zeile speichern */
  }

  /* Alles ausgeben bzw. damit rechnen */
  for (i=0; i<MAXROW; i++) {
    for (j=0; j<MAXCOL; j++)
      printf("Matrix[%d,%d] = %G\t", i, j, matrix[i][j]);
    printf("\n");
  }

  /* Alle Zeilen wieder freigeben, dann das Zeilenarray freigeben */
  /* [Optional, da am Ende des Programms!] */
  for (i=0; i<MAXROW; i++)
    free(matrix[i]);
  free(matrix);

  return 0;     /* Das war's */
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:56:00 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo