home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / cdactual / demobin / share / program / C / ANSICPP.ZIP / EX03007.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-24  |  677 b   |  33 lines

  1. // ex03007.cpp
  2. // Home-brew new and delete with character fill
  3. #include <iostream.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <stddef.h>
  7.  
  8. // ------------- overloaded new operator
  9. static void *operator new(size_t size, int filler)
  10. {
  11.     void *rtn;
  12.     if ((rtn = malloc(size)) != NULL)
  13.         memset(rtn, filler, size);
  14.     return rtn;
  15. }
  16.  
  17. // ----------- overloaded delete operator
  18. static void operator delete(void *type)
  19. {
  20.     free(type);
  21. }
  22.  
  23. main()
  24. {
  25.     // ------ allocate an asterisk-filled array
  26.     char *cp = new ('*') char[10];
  27.     // ------ display the array
  28.     for (int i = 0; i < 10; i++)
  29.         cout << " " << cp[i];
  30.     // ----- release the memory
  31.     delete cp;
  32. }
  33.