Allocation dynamique de tableaux en C avec taille de tableau variable
Les tableaux de taille variable, également appelés tableaux dynamiques, posent un défi en C standard . Considérons le programme suivant :
<br>int siz =. 0;<br>int n = 0;<br>FILE* photo;</p> <p>photo = fopen("test.jpg", "r");<br>fseek(photo, 0, SEEK_END); <br>siz = ftell(image);</p> <p>char Sbuf[siz];<br>fseek(image, 0, RECHERCHE_SET); //Aller au début du fichier<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)); */
}
Le code ci-dessus tente de allouer un tableau de caractères avec une taille déterminée par une variable siz. Cependant, en C standard, la taille des tableaux doit être constante. Cela pose la question : comment déclarer correctement siz pour permettre la compilation de code ?
Malheureusement, il n'existe pas de méthode directe pour déclarer un tableau de taille variable en standard C. Cependant, plusieurs alternatives existent :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!