Taille entier en C

Résolu/Fermé
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 - 19 janv. 2012 à 11:33
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 janv. 2012 à 17:52
Bonjour,

Quelle taille en octets prend un entier (integer) en mémoire dans le langage C ?

Merci.

4 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 janv. 2012 à 12:15
4 octets. Tu peux regarder l'article Langage C - Les types de données, ou alors tester par toi même en faisant size_t n = sizeof(int);
2
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 7
Modifié par choco90 le 19/01/2012 à 14:51
Salut,

Voila ce que j'ai mis mais ca n'a pas marché :

#include<stdio.h> 

void main(){ 
 size_t n = sizeof(int); 
  
 printf(n); 
  
  
}



Ou est l'erreur ?
0
dubcek Messages postés 18723 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 11 mai 2024 5 615
Modifié par dubcek le 19/01/2012 à 15:08
hello
printf("%d\n", n);
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
19 janv. 2012 à 15:51
c'est pas forcément 4 octets .
0
merci les amis :D
0
ejjall Messages postés 6 Date d'inscription mercredi 9 février 2011 Statut Membre Dernière intervention 10 octobre 2012 1
19 janv. 2012 à 12:10
Salut,

tu peux consulter ce lien :

https://www.commentcamarche.net/contents/196-langage-c-les-types-de-donnees

Sinon tu peux faire un petit code de type :

char taille_entier;
taille_entier = sizeof (int);

et imprimer la valeur de la variable taille_entier.
1
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 janv. 2012 à 12:17
Exactement la même réponse mais elles se sont croisées... si j'avais su je t'aurais laissé la main ;-)
0
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 7
19 janv. 2012 à 14:59
Salut,

Merci pour la réponse mais ce code n'a pas marché !! Je n'ai pas pu l'exécuter.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
20 janv. 2012 à 09:16
Bonjour,

La taille des opérateurs (à part du char) n'est pas fixe.
De plus, la taille ne s'exprime pas en octet mais en byte d'au moins 8 bits. Généralement, cela revient au même, mais pas nécessairement.
0
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 7
20 janv. 2012 à 23:07
octet = byte en anglais
0
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 7
20 janv. 2012 à 23:07
Merci fiddy ^^
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
20 janv. 2012 à 23:35
Non, byte = multiplet. Et en C, un char représente la plus petite mesure, soit un byte d'au moins 8 bits.
0
rafit jad kuldinger Messages postés 7689 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 2 février 2024 1 150
20 janv. 2012 à 23:39
heu tous dépend du nombre de bit utilise pour l encodage du nombre, et du nombre de chiffres de ce dernier.

8 , 16 , 32 , 64 ou 128 bit ..
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
21 janv. 2012 à 00:01
Sauf erreur de ma part, la question demande la taille d'un integer. Et ça ça ne dépend pas du nombre. Que ce soit 5 ou 5000, l'integer prendra la même taille.
Par contre, cela dépend de l'implémentation, de la taille processeur, ...
0
rafit jad kuldinger Messages postés 7689 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 2 février 2024 1 150
21 janv. 2012 à 00:09
ah bon donc 5 et 5 000 000 000 000 000 000 ca fera la meme taille ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
Modifié par fiddy le 21/01/2012 à 00:32
ah bon donc 5 et 5 000 000 000 000 000 000 ca fera la meme taille ?
Encore une fois, on ne parle pas de nombre mais de la taille du type "integer".
Lorsque dans un programme, tu définis un type int, celui-ci prend une taille en byte. Par exemple 4 bytes. Ainsi la taille 5, 10, 5000, 30 000 feront la même taille. Pour preuve, teste sizeof (5), sizeof(30000). En revanche, ton 5 000 000 000 ... n'est pas un integer, donc c'est hors sujet.
0
rafit jad kuldinger Messages postés 7689 Date d'inscription dimanche 4 avril 2010 Statut Membre Dernière intervention 2 février 2024 1 150
Modifié par rafit jad kuldinger le 21/01/2012 à 13:01
heu si je ne m abuse : interger = un nombre entier. et ce sans limite de chiffres dans le dit nombre ...
voir la :
https://en.wikipedia.org/wiki/Integer
et la :

https://fr.wikipedia.org/wiki/Entier_relatif

donc oui, mon 5 000 000 000 000 000 est bien un nombre entier, donc un interger.


un nombre entier est un nombre qui ne comporte pas de virgule.

revoir ses basse en math ca peu aide a évite de dire n importe quoi.
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 21/01/2012 à 13:03
On ne parle pas de NOMBRES ENTIERS, mais de VARIABLES DE TYPE INT, c'est très différent.
0