Vinzenz Mai: Anfängerfrage zu Strings in C

Beitrag lesen

Hallo,

Syntaktisch gesehen ja. Darüber habe ich mich auch gewundert. Also möchte frankx eigentlich einen Zeiger auf Zeiger auf char zurückgeben - im Prinzip ein Array aus Strings.
Das passt aber nicht so ganz mit der Arbeitsweise der Funktion zusammen, außerdem hat er ohnehin versäumt, ein Ergegbnis zurückzuliefern.

Jau, darauf sollte es hinauslaufen, insofern ist das aber beim Beispiel falsch. Rückgabe sollte eben ein array von strings also ein array von char-arrays sein.

Das geht nicht. Du musst den Zeiger auf Dein Array von Strings per Referenz übergeben, zum Beispiel:

/***
 * SplitLinesCsv
 * splittet eine Textzeile am Komma auf,
 * füllt die Teilzeichenketten in result
 *
 * @param line   Zeiger auf eine Zeichenkette
 * @param result Zeiger auf ein Array von Zeichenketten
 * @return       Anzahl der Teilzeichenketten
 *
 * Seiteneffekt: Speicher auf dem Heap wird allokiert
 */
int SplitLinesCsv(char* line, char** result) {
    /* your code goes here */
    // Ermittle, wieviele Teilzeichenketten es gibt
    // Allokiere den Speicher für das notwendige Array von Zeigern auf char
    // Ermittle die Teilzeichenketten
    // Allokiere für jede Teilzeichenkette den notwendigen Speicher
    // ...
}

Und *Du* solltest eigentlich wissen, was man bei CSV eigentlich alles so berücksichtigen müsste: Trennzeichen, Maskierzeichen, ...

Freundliche Grüße

Vinzenz