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