Jak sprawić, by gcc ostrzegał przed zwracaniem adresu zmiennych lokalnych?
Zgcc
4.4.5 Mam ostrzeżenie z następującym kodem.
char *f(void)
{
char c;
return &c;
}
Ale kiedy używam tymczasowego wskaźnika, nie ma już ostrzeżenia (nawet jeśli zachowanie jest nieprawidłowe).
char *f(void)
{
char c;
char *p = &c;
return p;
}
Słyszałem, że analiza wskaźnika jest trudna w C, ale możegcc
ostrzec o takim kodzie?