I have written a function template that takes a pointer to an object and prints out its contents and memory address.
Here is the code:
My program crashes after the last function call, and I can't figure out why. Any ideas?Code:#include <iostream> #include <string> #include "employee.h" #include "employee.cpp" #include "myfuncts.h" #include "myfuncts.cpp" template <class Type> Type iaddress(Type * obj); int main() { double num1 = 1.23; double num2 = 100.75; char *str1 = new char[26]; strcpy(str1, "Pointers are interesting!"); double num3 = -35.5; double *ptr4 = new double; // str1 output cout << "str1 - main: address: " << &str1 << " contents: " << str1 << endl; // num1 output and function call cout << "num1 - main: address: " << &num1 << " contents: " << num1 << endl; ptr4 = &num1; iaddress(ptr4); // num2 output and function call cout << "num2 - main: address: " << &num2 << " contents: " << num2 << endl; ptr4 = &num2; iaddress(ptr4); // num3 output and function call cout << "num3 - main: address: " << &num3 << " contents: " << num3 << endl; ptr4 = &num3; iaddress(ptr4); // ptr4 output and function call *ptr4 = 123.4; cout << "ptr4 - main: address: " << ptr4 << " contents: " << *ptr4 << endl; iaddress(ptr4); int num4 = 10; int * ptr2 = new int; cout << "num4 - main: address: " << &num4 << " contents: " << num4 << endl; ptr2 = &num4; iaddress(ptr2); string str2 = "Computer Science is Cool!"; string *ptr5 = new string; cout << "str2 - main: address: " << &str2 << " contents: " << str2 << endl; ptr5 = &str2; iaddress(ptr5); Employee emp1("Bugs Bunny", 12.47); emp1.print(); // testing output return 0; } template <class Type> Type iaddress(Type * obj) { cout << " function: address: " << obj << " contents: " << *obj << endl; delete obj; return (0); }
Brian