Heim  >  Artikel  >  Backend-Entwicklung  >  Wie simuliere ich gezackte Arrays in C und C?

Wie simuliere ich gezackte Arrays in C und C?

DDD
DDDOriginal
2024-11-06 04:54:02482Durchsuche

How to Simulate Jagged Arrays in C and C  ?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn