La taille des varibale

Talus Blecryo Messages postés 3 Date d'inscription samedi 21 janvier 2006 Statut Membre Dernière intervention 3 janvier 2009 - 3 janv. 2009 à 13:49
niclouxs Messages postés 6 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 4 janvier 2009 - 3 janv. 2009 à 19:25
bonjour a tous

ça fais déjà un bout de temps que je parcours les forum et le source de CppFrance mais je n'avais pas encore poser de question et la j'en ai une
j'ai beau chercher mais je trouve de reponse qui aille a ma question alors la voila

j'aimerai definir a une varible (peut importe son type) une taille defini pour y stocker un nombre fixe de donnée

je m'explique par exemple initialiser un variable sur 32bits pour qu'elle ne puisse pas en stocker plus, ni moins

PS je supose que vous allez me demander a quoi ca vas me servir et bien j'anticipe votre question
j'ai mit au point un petit algo de cryptage utilisant des taille fixe de permutation mais mon probleme vient des variable jes ai pas encore comment faire pour leur donner une tailles

1 réponse

niclouxs Messages postés 6 Date d'inscription samedi 3 janvier 2009 Statut Membre Dernière intervention 4 janvier 2009
3 janv. 2009 à 19:25
Salut,

La taille en nombre de bits d'une variable dépend uniquement de son type et du fait que ce soit un array ou non (ca dépends aussi du compilateur que tu utilise pour compiler ton programme).
Une facon de savoir la taille qu'occupe ta variable en mémoire est d'utiliser la fonctione sizeof(tavariable), ca va te retourner la taille en Bytes (=8bits).

Par exemple, si tu as le code suivant:
char c;
int i;
char* p;
char Salut[] = "Salut!";
int SizeOfC = sizeof(c);
int SizeOfI = sizeof(i);
int SizeOfp = sizeof(p);
int SizeOfSalut = sizeof(Salut);

SizeOfC sera égale à 1 Bytes (donc 8 bits),
SizeOfI sera égale à 4 Bytes (donc 32 bits),
SizeOfp sera égale à 4 Bytes (donc 32 bits),SizeOfSalut sera égale à (6+1)*1 Bytes 7 Bytes (donc 7*8 56 bits). (le +1 est pour le caractere de fin de chaine "\0" qui est ajouté automatiquement)

Finalement, si tu veux une variable sur 32 bits independemment de son type, tu as plusieurs choix, dépendemment de ce que tu souhaite en faire:
unsigned char v[4];
char v[4];
int v;

La plupart du temps, un int est sur 32 bits, mais encore une fois, ca depends du compilateur utilisé...

En esperant t'avoir un peu éclairé sur le sujet.

Seb
0
Rejoignez-nous