Forum: Compiler & IDEs ZEiger auf Array in Funktion


von Zeiger (Gast)


Lesenswert?

Hallo,
gehen beide Varianten oder nur die 2.?

1:
1
void func1(void) {
2
   int array[3];
3
   func2(array);
4
}
5
6
void func2(int* array2) {
7
   array[2]=5;
8
}

2:
1
void func1(void) {
2
   static int array[3];
3
   func2(array);
4
}
5
6
void func2(int* array2) {
7
   array[2]=5;
8
}

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Beide.

von Zeiger (Gast)


Lesenswert?

ok also bleibt array solange gültig, bis func2 beendet ist, da diese ja 
in func1 aufgerufen wurde.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, array bleibt solange gültig, bis func1 beendet ist. Das ist hier 
zwar kein Unterschied, da auf den Aufruf von func2 nichts mehr folgt, 
aber das muss ja nicht so sein. Und array steht eben auch nach dem Ende 
von func2 zur Verfügung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.