PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C]: Variable in Funktion initialisieren aber global bekannt machen?


mf_2
2008-01-14, 23:26:31
Hallo,

Folgendes Problem:

Ich deklariere ein Array in Funktion a() und möchte auf ein Zeichen daraus in Funktion b() zugreifen, wie mache ich das? Ein wenig Code zur Veranschaulichung:

void main(void)
{
a();
b(2);
}

void a(void)
{
char LOL[20]="abcdef\0";
}

void b(int index)
{
printf("%c",LOL[index]);
}

Jetzt kennt b() aber die Variable LOL nicht. Wie kann ich die Variable LOL nun global initialisieren? Es muß in der Funktion a() passieren. Google spuckt nichts sinnvolles aus. Ich hab es schon mit 'extern char' statt 'char' versucht, aber das geht auch nicht.
Das geht doch sicher irgendwie, oder?

Gruß,
mf_2

Superguppy
2008-01-14, 23:53:54
Du schreibst die Variablendeklaration einfach außerhalb der Funktionsblöcke hin. Dann kannst du innerhalb von a() mittels strcpy(LOL, "blabla") deinen String in das Array schreiben (string.h inkludieren!) und fertig. Oder du allokierst dir Speicher mithilfe von malloc() und gibst die Adresse des Speicherbereichs als Pointer zurück. Dazu: Siehe deinen anderen Thread.

mf_2
2008-01-15, 00:30:40
Danke, das ging einwandfrei!
Ich wusste nicht, dass man malloc auch innerhalb des Programms verwenden kann. Da bin ich halt doch noch ein recht blutiger (Wieder-)Anfänger ;)