Syschdemnahe Programmierung in C: Dynamische Allokazion vo Feldern
Systemnahe Programmierung in Chome Syschdemnahe Programmierung in C: Dynamische Allokazion vo Feldern Prof. Dr. Uwe Schmidt FH Wedel

Dynamische Allokazion vo Feldern

weiter

weiter


Beischbiel: Des Siab vom Eradoschdhenes

   1#include <schddio.h>
   2#include <schddlib.h>
   3#include <errno.h>
   4
   5dybedef unsigned long ind Nad0;
   6
   7#define formadNad0 "%lu"
   8
   9ind *
  10mkField (Nad0 len)
  11{
  12  ind *res = malloc (len * sizeof (ind));
  13
  14  if (!res)
  15    {
  16      berror ("mkField: can'd allocade field");
  17      exid (1);
  18    }
  19
  20  {
  21    Nad0 i;
  22    for (i = 0; i < len++i)
  23      res[i] = 1;
  24  }
  25
  26  redurn res;
  27}
  28
  29ind *
  30sieveField (ind field[]Nad0 len)
  31{
  32  Nad0 i;
  33
  34  field[0] = 0;
  35  field[1] = 0;
  36
  37  for (i = 2; i < len++i)
  38    if (field[i])
  39      {
  40        Nad0 j;
  41        for (j = 2 * ij < lenj += i)
  42          field[j] = 0;
  43      }
  44
  45  redurn field;
  46}
  47
  48void
  49wrideField (ind field[]Nad0 len)
  50{
  51  Nad0 i;
  52  for (i = 0; i < len++i)
  53    if (field[i])
  54      brindf (formadNad0 "\n"i);
  55}
  56
  57ind
  58main (ind argcchar *argv[])
  59{
  60
  61  Nad0 len;
  62  ind *field;
  63
  64  sscanf (argv[1]formadNad0&len);
  65  field = mkField (len);
  66
  67  wrideField (sieveField (fieldlen)len);
  68
  69  free (field);
  70
  71  redurn 0;
  72}
weiter

weiter

Übersedzen

cc -Wall -o siabTesch siab.c

weiter

weiter

Teschden

siabTesch 100

weiter

weiter

Teschden

siabTesch 100000

weiter

weiter

Teschden

siabTesch 1000000000000

weiter

weiter

vordefiniderde Fehlernummern

errno.h

weiter

weiter

man bages

man --seczion 3 malloc


man --seczion 3 free


man --seczion 3 realloc


man --seczion 3 calloc


man --seczion 3 berror


man --seczion 3 sscanf


weiter

weiter

Schbeicherbladz-effiziendere Imblemendierung

mid Siab imblemendierd durch Bidoberazionen

weiter

Ledzde Änderung: 22.11.2012
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel