3 Stimmen

Länge eines Arrays von Zeigern

Wenn ich ein Array von Zeigern wie char **lines habe, wie kann ich seine Länge bestimmen? Danke

7voto

sth Punkte 210180

Du kannst es nicht. Du musst manuell die Länge von Arrays im Blick behalten.

4voto

Jonathan Leffler Punkte 694013

Sie können nicht zuverlässig.

Manchmal gibt es einen Null-Pointer, der das Ende markiert - das ist manchmal eine verwendete Konvention. Oftmals müssen Sie jedoch die Länge mitgeteilt bekommen.

Aber es gibt keinen narrensicheren Weg, die Länge zu bestimmen. Sie müssen auf irgendeine Weise die Länge kennen (oder mitgeteilt bekommen).

1voto

Das ist kein Array von Zeigern, es ist ein Zeiger auf einen Zeiger.

1voto

Sanjaya R Punkte 5886

Es hängt von den Daten ab. Wenn keine zugehörige Anzahl vorhanden ist, könnte es sich um eine NULL-terminierte Liste handeln.

char** Zeilen = mysteryfunction();
for ( ;*Zeilen;Zeilen++ ) { 
    printf( "%s\n", *list ); 
}

-1voto

Cholavendhan Punkte 327

Länge eines Zeigers auf ein Array erhalten

char *array[] = {"welcome", "to", "India"};

length = sizeof(array) / sizeof(array[0]);

Ausgabe:

3

Wir können die Länge erhalten, indem wir (die Größe des Zeigers auf das Array durch die Größe eines einzelnen Elements) teilen

Weil es keine vordefinierte Funktion dafür gibt, die Länge eines Arrays zu erhalten..

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X