Witam serdecznie, moim problemem jest to, że mam funkcję przyjmującą parametr char* i zwracającą char*, wszystko niby działa tylko, że nie mam pojęcia gdzie mam w tej funkcji wstawić delete []. Proszę o pomoc, oto kod:
/*Napisz funkcję przyjmującąparametr typu char*. Używając operatora new,
przydziel dynamicznie pamięć tablicy znaków o takiej samej wielkości,
jak tablica znakowa przekazana funkcji. Wykorzystując indeksowanie tablic,
skopiuj znaki argumentu do dynamicznie przydzielonej tablicy (nie zapomnij
o zerze, kończącym tablicę znakową) i zwróć wskaźnik do utworzonej w ten
sposób kopii. Przetestuj napisaną funkcję w obrębie funkcji main(),
przekazującjej statycznątablicę znakową znajdującą się w cudzysłowie,
a zwróconą wartość przekaż z powrotem swojej funkcji. Wydrukuj oba
łańcuchy i oba wskaźniki w taki sposób, aby było widać, że są to różne
obszary pamięci. Zwolnij całąprzydzielonądynamicznie pamięć, używając
do tego operatora delete.*/
#include<iostream>
using namespace std;
char* kopiuj(char*);
int main()
{
char lancuch[50];
cout<<"Wpisz jakis lancuch:"<<endl;
gets(lancuch);
cout<<"Wyswietlam skopiowany string: "<<endl;
cout<<kopiuj(lancuch)<<endl;
getchar();
}
char* kopiuj(char* lancuch)
{
char *w;
int i=0;
while(lancuch[i]!=EOF)
{
i++;
}
w = new char[i];
for(int j=0;j<=i;j++)
{
w[j]=lancuch[j];
}
return w;
}