Initialisieren ein array von char-Pointer mit malloc

typedef struct {
    char * array[10];
} List;

int main(void) {
    List input;
    input.array = (char **)malloc(10 * sizeof(char));
    if (input.array == NULL)
        exit(EXIT_FAILURE);

    for (i = 0; i < 10; i++) {
        input.array[i] = (char *)malloc(10 * sizeof(char));
        if (input.array[i] == NULL)
            exit(EXIT_FAILURE);
    }
}

Ich bin versucht zu initialisieren Sie ein array von 10 char-Zeiger, die jeder Punkt zu einem anderen string der Länge 10.

Erhalte ich die folgende Fehlermeldung vom gcc:

incompatible types when assigning to type char *[10]’ from type char **’

Mein Aufruf von malloc muss nicht richtig sein, aber wie so?

Einfach, Sie können nicht zuweisen arrays. Fallen die input.array = (char **)malloc(10 * sizeof(char)); Linie. Auch, nicht immer wandeln Sie die return-Wert malloc()!
Ah, und Leute, bitte nicht upvote diese Frage, es ist eine schlechte dupe.
Vielen Dank für das feedback.

InformationsquelleAutor airietis | 2013-07-10

Schreibe einen Kommentar