// delete.cpp -- použití operátoru delete
#include <iostream>
#include <cstring> 			// nebo string.h
using namespace std;
char * getname(void); 		// funkční prototyp
int main()
{
	char * name; 					// vytváří ukazatel, ale nealokuje paměť

	name = getname(); 			// přiřazuje adresu řetězce do name
	cout << name << " na adrese " << (int *) name << "\n";
	delete [] name; 				// uvolnil paměť

	name = getname(); 			// nové použití uvolněné paměti
	cout << name << " na adrese " << (int *) name << "\n";
	delete [] name; 				// opět uvolnil paměť
	return 0;
}

char * getname() 				// vrací ukazatel novému řetězci
{
	char temp[80]; 				// dočasná paměť
	cout << "Zadejte prijmeni: ";
	cin >> temp;
	char * pn = new char[strlen(temp) + 1];
	strcpy(pn, temp); 			// kopíruje řetězec do menšího prostoru

	return pn; 						// temp se ztrácí, když funkce končí
}
