ich versuche gerade das Themengebiet arrays, Zeiger und Strings in C möglichst gut zu verstehen und komme an einer Stelle gerade nicht weiter.
Ich wollte Folgendes auspropieren: Wie speichere ich ein paar strings in einem array? Welche Möglichkeiten gibt es?
Dazu habe ich
2 Strings definiert (str1, str2)
1 Array von char Pointern definiert --> puffer
1 Char array 4x20 definiert. --> puffer2
str1 und str2 puffer zugewiesen --> ok, Verhalten wie erwartet
Beim Versuch str1 in puffer2 zu speichern kommen meine Fragen.
Mir ist klar das str1 ein Zeiger auf das erste Element von "Auto" ist.
Deshalb ist für mich auch noch plausibel weshalb ich in puffer2 den Inhaltsoperator vorstellen muss, um Compilerfehler zu verhindern.
Mir ist auch noch kla, dass *str1 ein A ist.
Meine Fragen:
Ist mein Ansinnen so überhaupt möglich?
Wenn ja, wie müsste ich str1 in puffer2 zuweisen, dass ich bei printf("%s", puffer2[0]) nicht ASchiff bekomme, sondern Auto
Kann mir da jemand bitte weiterhelfen?
Danke!
Gruß
Marcus
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
int main(){
char str1[]="Auto";
char str2[]="Schiff";
char* puffer[]={str1,str2};
//char puffer2[4][20]={"Flugzeug",str1,str2,"Flugzeug"};
char puffer2[4][20]={*str1,"Schiff",
,"Auto"
,"Frosch"
, "Heidi"};
printf("%d \n",sizeof(puffer));
printf("%s \n",puffer[0]);
printf("%d \n",sizeof(puffer2));
printf("%s \n",puffer2[0]);
return EXIT_SUCCESS;
}