Hallo
Ich benutze in einer Klasse einen char* der auf Speicher
verweist, in dem Text steht. Jetzt kann es aber sein, dass ich
nur einen einzeiligen Text manchmal aber auch einen
mehrzeiligen Text verwenden möchte. Es ist mir wichtig, dass
ich bei einem mehrzeiligen Text, jede Zeile möglichst einfach
ansprechen kann. Ist es möglich einen char* auch als char** zu
verwenden (evt. casten) ?
Man könnte, wenn es in blankem C sein soll, so etwas
basteln, z.B. so ähnlich (make_strarray) wie:
#include
#include
#include
char **make_strarray(char str[], int *z);
void delete_strarray(char **a, int z);
int main()
{
char string[] =
„Zeile 1 \n“
„Zeile 2 \n“
"Zeile 3 ";
char **strings;
int i, n;
strings = make_strarray(string, &n);
printf("%d Zeilen gefunden\n", n);
for(i=0; i
Erst mal vielen Dank für diese Lösung, auch wenn sie mein Problem noch nicht ganz aus dem Weg schafft. Vielleicht ist es in meinem Fall sogar besser von vornherein ein zwei dimensionales Array zu benutzen und lediglich die erste Zeile zu verwenden.
Dazu noch schnell eine Frage:
Wie sehen zwei dimensionale Arrays im Speicher (eindimensional) aus? Liegen hier einfach die Zeilen nacheinander in einer Kette im Speicher? Wäre interessant damit ich nacher meinen Stringcontainer auch noch dynamisch gestalten kann. (realloc)
mfg dixxi