Zazwyczaj programuję w języku C++, ale używam funkcji clibrary dla mojego znaku *. Niektóre strony podręcznika podobne do "getline", mówi, że wejście powinno być tablicą malloced.Czy istnieje różnica między tablicami malloced a nowymi tablicami
Czy można zamiast tego używać "nowego"?
Widzę, że moja mała próbka działa, ale czy może to w pewnym momencie spowodować dziwne niezdefiniowane zachowanie?
Wiem, że "nowy" powinien pasować do "usunięcia", a "malloc" z "wolnym".
Nie używam również std :: string. A to jest zamierzone.
Dzięki
Nie, to nie jest OK. Ale jeśli używasz C++, czemu nie użyć std :: getline()? –
Ilekroć widzisz coś takiego w dokumentacji, musisz głębiej się zagłębić i dowiedzieć się, czy zalecają "wycentrowany" wskaźnik, ponieważ używają terminologii C lub ponieważ funkcja ma wywoływać realloc() lub free(). Najwyżej ocenione odpowiedzi poniżej zakładają pierwsze, chociaż uważam, że funkcja, o której mówisz, ma do czynienia z tą ostatnią, jak zaznacza Martin. Nie jest w porządku parowanie malloc/free i new/delete niepoprawnie, więc najlepiej wykonać dodatkowe badania dotyczące konkretnych funkcji, do których dzwonisz, gdy pojawi się ten problem. –