"Lebenszeit" von String-Literal in C

Wäre das nicht der Zeiger zurückgegeben, indem die folgende Funktion unzugänglich?

char *foo( int rc ) 
{
    switch (rc) 
    {
      case 1:           return("one");
      case 2:           return("two");
      default:           return("whatever");
    }
}

Also die Lebensdauer einer lokalen Variablen in C/C++ ist praktisch nur innerhalb der Funktion, richtig? Das heißt, nach char* foo(int) beendet wird, werden die Zeiger gibt es nicht mehr etwas bedeutet?

Ich bin ein wenig verwirrt über die Lebensdauer von lokalen var.
Könnte mir jemand eine gute Aufklärung?

InformationsquelleAutor der Frage user113454 | 2012-04-02

Schreibe einen Kommentar