allocation dynamique du tableau en C avec une taille de tableau de variable
des tableaux de taille variable, également connus sous le nom de tableaux dynamiques, pose un défi dans Standard C. 0;
fichier * image;
image = fopen ("test.jpg", "r");
fseek (image, 0, Seek_end);
siz = ftell (image);
char sbuf [siz];
fseek (image, 0, recherche); // Aller au début du fichier
while (! Feof (image)) {
n = fread (sbuf, sizeof (char), siz, image);
/ * ... faites des trucs avec le tampon ... * /
/ * memset (sbuf, 0, sizeof (sbuf)); * /
}
n = fread(Sbuf, sizeof(char), siz, picture); /* ... do stuff with the buffer ... */ /* memset(Sbuf, 0, sizeof(Sbuf)); */Le code ci-dessus tente d'allouer un tableau de caractères avec une taille déterminée par une variable siz. Cependant, dans la norme C, la taille des réseau doit être des constantes. This poses the question: how can we declare siz correctly to allow code compilation?
Unfortunately, there is no direct method to declare an array with a variable size in standard C. However, several alternatives exist:
std::vector:
In modern C , the std::vector container can be used as a flexible alternative to tableaux. Il peut être facilement étendu à n'importe quelle taille souhaitée et son utilisation est relativement simple.Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3