Jagged Arrays in C und C
In Diskussionen über Programmiersprachen stößt man möglicherweise auf den Begriff „Jagged Array“. Dieses Konzept wird jedoch in C oder C nicht grundsätzlich unterstützt. Gezackte Arrays beziehen sich auf ein Array, bei dem jedes Element ein Array unterschiedlicher Länge sein kann.
Im angegebenen Codebeispiel wird versucht, ein gezacktes Array mit der folgenden Syntax zu deklarieren:
<code class="c">int jagged[][] = { {0,1}, {1,2,3} };</code>
Allerdings gibt C beim Kompilieren einen Fehler aus, der darauf hinweist, dass für alle Dimensionen außer der ersten Grenzen angegeben werden müssen. Dies liegt daran, dass C erfordert, dass Arrays zur Kompilierzeit feste Größen haben.
Um gezackte Arrays in C/C zu simulieren, besteht ein häufig verwendeter Ansatz darin, ein Array von Zeigern zu verwenden. Jeder Zeiger in diesem Array zeigt auf einen dynamisch zugewiesenen Speicherblock, in dem Elemente eines gezackten Arrays gespeichert werden können.
Beispiel in C:
<code class="c">#include <stdlib.h> int main() { // Initialize array of pointers int *jagged[5]; // Allocate memory for each pointer and set array values jagged[0] = malloc(sizeof(int) * 2); *(jagged[0]) = 0; *(jagged[0] + 1) = 1; jagged[1] = malloc(sizeof(int) * 3); *(jagged[1]) = 1; *(jagged[1] + 1) = 2; *(jagged[1] + 2) = 3; // Use the jagged array // ... // Deallocate memory free(jagged[0]); free(jagged[1]); return 0; }</code>
Das obige ist der detaillierte Inhalt vonWie simuliere ich gezackte Arrays in C und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!