Bonjour.
J'aurai souhaité savoir s'il y avait un "risque" (hormis peut être pour la lisibilité du code) d'utiliser un tableau de char pour y stocker de petits entiers ou cela se manipule exactement comme les short int, et les int ?
Merci
Bonjour.
J'aurai souhaité savoir s'il y avait un "risque" (hormis peut être pour la lisibilité du code) d'utiliser un tableau de char pour y stocker de petits entiers ou cela se manipule exactement comme les short int, et les int ?
Merci
Lai,
Quelle idée saugrenue.
Un tableau de char ne se manipule pas comme comme un int (ou un short int), où as-tu pris cette idée ?
Tu ne gagneras absolument rien, et tu perdras pas mal, alors oublie tout de suite.![]()
Oula, il y a peut être eu mauvaise interprétation de ce que j'ai voulu dire (en me relisant c'était en effet peut être pas clair). Ce que je voulais dire était : est-ce qu'un tableau de char se gère exactement de la même façon qu'un tableau de int ?
En fait j'ai vraiment besoin d'économiser de la mémoire et j'ai seulement besoin de pouvoir stocker une valeur entre 0 et 20 dans mon tableau... Du coup si je ne peux utiliser qu'un octet par case, ce serait cool...
Salut,
Si tes valeurs sont comprises entre 0 et 20, tu peux effectivement envisager l'utilisation d'un tableau de unsigned char, pour autant que tu sois certains des valeurs limites!!!!
Cependant, je déconseillerais fortement de le faire à moins d'avoir vraiment de très bonnes raisons de le faire (un manque de mémoire ou d'une quantité pharaonique d'éléments)
Ceci dit, dans certaines conditions, l'utilisation d'un tableau de caractères est le passage obligé, comme par exemple, s'il s'agit de charger en cache le contenu d'un fichier "binaire" (le très mal nommé)
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Pour moi :
Un tableau de char stocke des caractères, pas des entiers.
Un tableau d'unsigned char stocke des données 8 bits sur lesquelles on va faire des opérations bit à bit (le fait d'être unsigned évite plein d'erreurs sur ces manipulations).
Un tableau de signed char stocke des petits entiers, sur lesquels on va faire des opérations arithmétiques (le fait d'être signed évite plein d'erreurs sur ces manipulations).
Sachant que par tableau, si la taille est dynamique, j'entends std::vector.
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Partager