Z const char*
oczywiście zgoda.
Co do tej dealokacji w funkcji... jak wspomniałem zadanie jest IMHO poronione, ale tak odczytuję fragment "zadbaj o usunięcie rezerwacji w odpowiednim momencie".
No to zdecydowanie nie jest to odpowiedni moment.
Zgoda co do tego, iż sam pomysł na zadanie jest z czapy, ale jeśli już zwalniać pamięć, to w tym wypadku na końcu main-a
Jak dla mnie chodziło o rezerwację string
, a nie char[]
, która w zadaniu nie jest w ogóle wymieniona.
Pewnie nadinterpretuje, ale zgodnie z treścią zadania, trzeba przyjąć tablicę charów, więc, sygnatura funkcji powinna wyglądać +- tak:
template <auto N>
string* (const char (&)[N]);
// Nie wiem czy miałem szczęście, ale nie pamiętam, żeby mi na studiach takie głupie zadania dawali.
Hmm...
Skoro jest tak jak mówicie, to po co w ogóle wydzielać to do oddzielnej funkcji? Przecież to się ograniczy do
string* str = tab ? new string{tab} : nullptr;
Potemu, że w treści polecenia jest:
Napisz funkcję, która w argumencie będzie miała tablicę char i zwróci zwykły wskaźnik na
nowy/dynamiczny obiekt string z ciągiem znaków z argumentu
Dziękuję wszystkim za pomoc! Jeszcze przejdę się do wykładowcy na konsultacje i pewnie dopytam jak dokładnie widzi to zadanie.