Wewnątrz funkcji string_to_char alokuje dynamicznie pamięć. Funkcja zwraca mi wskaźnik do tej zmiennej char. Tylko potem tworzę kolejny wskaźnik i do niego przypisuję to co mi zwraca funkcja czyli wskaźnik. Który wskaźnik mam usunąć? Kiedy wstawić delete? Czy jak usunę wskaźnik *ntab to usunę również *tab?
Według mnie tworzę wskaźnik do wskaźnika i jak usunę jeden to jednocześnie usuwam drugi?
(Tak, wiem powinienem zainicjować wsk w main).
#include<string.h>
#include<iostream>
using namespace std;
//Funkcja zwraca wsk do char
char * string_to_char( string &s)
{
char *tab = new char [s.size() + 1];
for (int i = 0; i< s.size(); i++)
{
tab[i] = s[i];
}
return tab;
}
int main()
{
char *ntab;
string s = "Jan";
s += " Jan";
cout << s << endl;
ntab = string_to_char(s);
cout << ntab << endl;
delete ntab;
return 0;
}