Dynamische Array-Zuweisung in C mit variabler Array-Größe
Arrays variabler Größe, auch als dynamische Arrays bezeichnet, stellen in Standard C eine Herausforderung dar . Betrachten Sie das folgende Programm:
<br>int siz = 0;<br>int n = 0;<br>FILE* picture;</p> <p>picture = fopen(" test.jpg", "r");<br>fseek(picture, 0, SEEK_END);<br>siz = ftell(picture);</p> <p>char Sbuf[siz];<br>fseek(picture , 0, SEEK_SET); //Gehe zum Anfang der Datei<br>while (!feof(picture)) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">n = fread(Sbuf, sizeof(char), siz, picture); /* ... do stuff with the buffer ... */ /* memset(Sbuf, 0, sizeof(Sbuf)); */
}
Der obige Code versucht dies Ordnen Sie ein Array von Zeichen zu, dessen Größe durch eine Variable „siz“ bestimmt wird. In Standard-C müssen Array-Größen jedoch Konstanten sein. Dies wirft die Frage auf: Wie können wir siz korrekt deklarieren, um die Codekompilierung zu ermöglichen?
Leider gibt es in Standard-C keine direkte Methode, um ein Array mit einer variablen Größe zu deklarieren. Es gibt jedoch mehrere Alternativen:
Das obige ist der detaillierte Inhalt vonWie kann ich in Standard C ein Array mit variabler Größe deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!