Struktur mit Zeiger auf char-Arrays
-
Hallo zusammen,
ich benötige eine Struktur, in der ich 2 Zeiger auf Char-Arrays habe, die dynamisch wachsen können. Ich dachte mir, dass das so aussieht:
struct
{char *s1[]; //in z.B. s1[0] soll später ein String abgelegt werden
char *s2[]; //in z.B. s2[0] soll später ein String abgelegt werden
}test;Dann versuche ich den benötigten Speicherplatz bereitzustellen:
test.s1[0]=malloc(...);
test.s2[0]=malloc(...);Und stelle nun fest, dass beide Adressen gleich sind.
Was mache ich falsch?Schon mal besten Dank.
-
Anmerkung:
Das Problem scheint nicht malloc zu liegen, sondern grundsätzlich scheint
&(test.s1) == &(test.s2) = wahr zu sein
-
Also so sollte das schon gehen (ungetestet) :
typedef struct { char **s1; char **s2; } test; int main() { int i; test t; t.s1 = (char**)malloc(sizeof(char*) * 3); // 3 C-Strings t.s1[0] = (char*)malloc(6); t.s1[1] = (char*)malloc(6); t.s1[2] = (char*)malloc(2); strcpy(t.s1[0], "Hello"); strcpy(t.s1[1], "World"); strcpy(t.s1[2], "!"); for(i=0; i<3 ;i++) printf("t.s1[%i] = %s\n", i, t.s1[i]); return 0; }