01 // Speicherallokierungsfehler
02 // Demonstration durch expliziten Auswurf
03 // Datei: sfehl06.cpp
05 #include <iostream.h>
06 #include <cstring.h>    // fuer xalloc
07 #include <except.h>
09 class zeile
10 {
11 char * puffer;
12 public:
13 zeile (char * cp);
14 ~zeile() { delete [] puffer; }
15 };
17 zeile::zeile(char * cp)
18 {
19 try  // Der eigentliche Code ist nur die
20   {  // Kommentarzeile
21 // puffer = new char [strlen (cp) +1];
22   string s ("Nur lokaler Test");// Nur Test
23   xalloc x(s,100);            // Nur Test
24   x.raise();           // Auswurf, Nur Test
25   }
26 catch (xalloc xa)
27   {
28   cerr << "Speicherfehler erkannt" << endl;
29   cerr << "Anzahl chars " << xa.requested()
30     << " nicht gefunden" << endl;
31   exit (9);
32   }
33 strcpy (puffer, cp);
34 }
3