C Returning char [] Warning „zwraca adres zmiennej lokalnej” [duplikat]
To pytanie ma już tutaj odpowiedź:
Zwracanie adresu zachowania zmiennej lokalnej [duplikat] 2 odpowiedziTo część zadania domowego.
Próbuję odczytać i zwrócić pojedynczą linię pliku w mojej metodzie getLine.
char *getLine(FILE *input) {
char line[30];
if(fgets(line, sizeof(line), input)!=NULL)
{
return line;
}else{
return NULL;
}
}
Wydaje się, że działa to na podstawie tego, czego nauczyłem się odnośnie wskaźników, jednak nie mogę usunąć komunikatu ostrzegawczegowarning: function returns address of local variable [enabled by default]
. To ostrzeżenie odnosi się do liniireturn line;
. Moje zadanie wymaga, aby nie kompilować żadnych ostrzeżeń ani błędów. Nie widzę, co robię źle.
Większość pomocy, jaką znalazłem, zasugerowała, że zajmuje miejsce na linię tekstu, ale jeszcze nie uwzględniliśmy tego w klasie, mimo że zrobiłem kilka w innej klasie. Czy to naprawdę najlepszy sposób na to? Jeśli tak, czy mógłbym uwolnić się w dowolnym miejscu programu?