01 // Setzen der Fehlerbehandlung bei new
02 // Datei: handler.cpp
03
// Die Zuweisung an _new_handler ist veraltet.
05 #include <stdio.h>
06
#include <stdlib.h>
07 #include <new.h>
09 int z = 1; // global für den
handler
11 void new_handler ()
12 {
13 printf ("\nHier ist new: Ich habe
keinen "
14 "Speicher für %i double-Vars. mehr frei.\n",
15 z);
16
exit (1); // keine Reparaturmöglichkeit
17 }
19 int main ()
20 {
21 int
i;
22 double * zeiger;
23 void (*fz)();
25 fz = set_new_handler (new_handler); //
oder:
26 // _new_handler = mein_handler; // veraltet!
27
28 for (i=0;i<
100;i++) // Endlosschleife
29 { if ((zeiger = new double [z] ) != NULL)
30 {
31 delete zeiger; // Platz freigeben
32 z = z +1000;
33 }
34 else
35 {
36 fprintf(stdout,"\nHandler lief nicht.\n");
37 }
38 }
39 return 0;
40 }
|
Bild 18-6: Frühe Bindung und Feldzugriff |