Forum: PC-Programmierung Zweidimenionales Array zuweisen


von Huck F. (debil)


Lesenswert?

Hallo Leute,

kurz vorab: bin Anfänger - also bitte nicht mekern.

wie ich ein zweidimensionales Array erstelle habe ich bereits 
rausgefunden.
z.B. so: (Dabei erzeuge ich 3 Elemente mit jeweils 4 Zeichen.)

char test [3][4]={"abcd","efgh","ijkl"};


Jetzt mein Problem:

ich möchte z.b. eine bestehende Variable vom Typ Char in das zweite 
Element meines zweidimensionalen Arrays einfügen. Wie mach ich das?

also z.B.

char test1 [4]="baum";
char test [3][4];


der Inhalt von test1 soll jetzt im zweiten Element von test stehen.
Wie mache ich das?


Vielen Dank

von Andreas B. (andreasb)


Lesenswert?

strcpy bzw. strncpy.

Ansonsten char * array verwenden, also char * test[3], dann kannst du 
mit = zuweisen, hast jedoch dann eine Referenz, also beim ändern eines 
Wertes werden alle Werte geändert.

mfg Andreas

von Andreas (Gast)


Lesenswert?

Du brauchst übrigens noch platz für einen nullterminator character!

char test [3][4]={"abcd","efgh","ijkl"};

sollte eine dimension von

char test [3][5]={"abcd","efgh","ijkl"};

haben.

Ansonsten wird strncpy nicht funktionieren und du zerhaust dir deinen 
speicher!

Und benutze strncpy (mit längenprüfung!) anstatt strcpy

Grüsse Andreas

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Denkbar ist auch
1
char *test[] = { "abcd", "efgh", "ijkl" };
2
3
void foo (void)
4
{
5
    text[2] = "Hallo";
6
}

Allerdings musst du dir dann über die andere Semantik im klaern sein und 
beurteilen, ab das im Programm angemessen ist.

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.