С gcc
4.4.5 у меня есть предупреждение со следующим кодом.
char *f(void)
{
char c;
return &c;
}
Но, когда я использую временный указатель, больше нет предупреждений (даже если поведение неверно).
char *f(void)
{
char c;
char *p = &c;
return p;
}
Я слышал, что анализ указателей затруднен в C, но может ли gcc
предупредить о таком коде?