delete.cpp 904 B

12345678910111213141516171819202122232425262728293031
  1. // delete.cpp -- using the delete operator
  2. #include <iostream>
  3. #include <cstring> // or string.h
  4. using namespace std;
  5. char * getname(void); // function prototype
  6. int main()
  7. {
  8. char * name; // create pointer but no storage
  9. name = getname(); // assign address of string to name
  10. cout << name << " at " << (int *) name << "\n";
  11. delete [] name; // memory freed
  12. name = getname(); // reuse freed memory
  13. cout << name << " at " << (int *) name << "\n";
  14. delete [] name; // memory freed again
  15. // cin.get();
  16. // cin.get();
  17. return 0;
  18. }
  19. char * getname() // return pointer to new string
  20. {
  21. char temp[80]; // temporary storage
  22. cout << "Enter last name: ";
  23. cin >> temp;
  24. char * pn = new char[strlen(temp) + 1];
  25. strcpy(pn, temp); // copy string into smaller space
  26. return pn; // temp lost when function ends
  27. }