Jagged Arrays in C/C: The Mystery Unveiled
Im Gegensatz zu seinem Namen ist ein Jagged Array, auch als Ragged Array bekannt, ist ein Array von Arrays, wobei die Unterarrays unterschiedliche Längen haben. Während dieses Konzept in Sprachen wie JavaScript und Python allgegenwärtig ist, bietet C/C keine direkte Unterstützung für diese Art von Datenstruktur.
Mangel an nativen Jagged Arrays in C/C
Wenn beim Kompilieren des folgenden Codes in C oder C ein Fehler auftritt:
<code class="cpp">int jagged[][] = { {0,1}, {1,2,3} };</code>
Die Meldung „Deklaration von ‚jagged‘ als mehrdimensionales Array muss Grenzen für alle Dimensionen außer der ersten haben“ deutet darauf hin Mehrdimensionale C/C-Arrays müssen die Längen aller ihrer Dimensionen außer der ersten angeben. Mit anderen Worten, gezackte Arrays sind nicht Teil der nativen C/C-Sprachspezifikation.
Emulation von gezackten Arrays in C
Um die Funktionalität von gezackten Arrays in C zu erreichen , muss man auf alternative Ansätze zurückgreifen. Eine solche Methode besteht darin, ein Array von Zeigern zu verwenden:
<code class="cpp">int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3);</code>
In diesem Beispiel ist „jagged“ ein Array von fünf Zeigern. Jeder Zeiger zeigt auf einen zugewiesenen Speicherblock zum Speichern von Ganzzahlen. Durch die Verwendung eines Arrays von Zeigern können Sie Subarrays unterschiedlicher Größe erstellen und die Kontrolle über deren Speicherzuweisung und -verwaltung behalten.
Das obige ist der detaillierte Inhalt vonWie können Sie gezackte Arrays in C/C erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!