CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

structures: comment connaître la taille?

Koyo-K
Koyo-K
Niveau 9
25 janvier 2005 à 19:06:37

Lu, est-ce que pour avoir la taille d´une structure il faut additionner la taille de tous les types présents dans cette structure :
bool ( 4 bits) + int ( je-sais-plus-combien-de-bits) etc... ?

Kouic
Kouic
Niveau 9
25 janvier 2005 à 20:05:46

SI c´est en C, sizeof(taStructure).
Tu devrais tout de meme poser les questions de prog dans le forum adapté.

Koyo-K
Koyo-K
Niveau 9
25 janvier 2005 à 20:10:08

Nan je veux pas récupérer la taille, juste savoir à partir de quoi elle est calculée...
Dans le forum prog il y a personne ( je me demande bien qui a fait la requête de créer ce forum d´ailleurs).

Vengeur41
Vengeur41
Niveau 10
25 janvier 2005 à 20:16:05

Tu additionne les tailles de touts les champs qui sont dedans...

Koyo-K
Koyo-K
Niveau 9
25 janvier 2005 à 20:18:52

Et ces champs, il faut juste prendre les types ?
Comment on fait pour savoir avec un tableau, le nombre entre crochets reproduit le type spécifié un certain nombre de fois ?

AKD
AKD
Niveau 9
25 janvier 2005 à 20:23:29

OUI :lol:

JeanYvesYves
JeanYvesYves
Niveau 10
25 janvier 2005 à 21:34:30

je ne comprends pas pkoi ce que te dis Kouic ne te plait pas :-/ il a raison : c´est sizeof.

struct truc
{
int a;
int b;
double c;
};

si tu fais la taille d´un int : 4 octets, la taille d´un double : 8 octets, donc ça te fais 4+4+8 = 16 octets pour ta structure.

Cependant, si tu fais :

r = sizeof(struct truc);
ça te renvoie 16 aussi ! ! tu n´as pas besoin de passer par les éléments un par un.

Sinon, explicite davantage ce que tu veux :)

Koyo-K
Koyo-K
Niveau 9
25 janvier 2005 à 22:41:50

Ouais ça ira comme ça.
Précisément je voulais juste savoir comment on voyait en gros la taille d´une structure, sans insérer de truc qui donne la taille précise avec une fonction et tout... faut pas chercher compliqué avec moi hein.

JeanYvesYves
JeanYvesYves
Niveau 10
25 janvier 2005 à 22:45:23

lol :) ben avec sizeof :)

Koyo-K
Koyo-K
Niveau 9
25 janvier 2005 à 23:13:59

Ouais... mais non ! Je veux pouvoir donner une estimation moi-même, sans m´aider d´une fonction ( c´est juste pour voir si elle prendra beacoup de ressources à vue d´oeuil)

kufa
kufa
Niveau 9
25 janvier 2005 à 23:32:32

le a vue d oeil se fait sans compiler en faisant un sizeof egalement.
Ensuite si tu ne sais pas comment calculer, et si tu ne trouves pas ca evident, ben alors je te conseil d utiliser sizeof.

faut pas chercher compliqué avec moi hein.

Oui comme ca c´est beaucoup plus simple que de calculer a la main.

struct A
{
char a;
int b;
};

selon les compilos et options du compilos: sizeof( struct A ) = 6;

je me demande bien qui a fait la requête de créer ce forum d´ailleurs).

Je te trouve bien insolent pour qq un qui trouve qu´un sizeof c´est trop complique.

JeanYvesYves
JeanYvesYves
Niveau 10
25 janvier 2005 à 23:43:11

exact ! l´alignement mémoire : je l´avais oublié !

Oui, voila la preuve que la somme des sizeof des données dans la struct peut etre inférieure a la taille de la struct : cela vient d´un alignement mémoire : un int ne commence jamais sur un octet impair ( voir non multiple de 4)
peut etre meme que sur certains compilos, le sizeof de la structure A de Kufa fait meme 8 !
Le sizeof te permet de rendre ces problemes transparents :
-> utilise le sizeof :)

Koyo-K
Koyo-K
Niveau 9
25 janvier 2005 à 23:48:07

Arf kufa faut pas me trouver insolent, et j´ai pas dit non plus que le sizeof était trop compliqué ( j´ai quand même dépassé ce stade...) ; c´est mon livre qui m´embrouille. Je préfère en rester là histoire de pas passer pour plus con que je le suis :p)

lord_kalipsy
lord_kalipsy
Niveau 10
26 janvier 2005 à 03:27:46

Arf j´avais remarqué ce truc d´alignement de mémoire l´autre jour avec Kelios . .. Le problème c´est que si tu dois écrire sur le disque ( ou tout autre support ) ça peux donner quelque chose de pas net . .. ( Tu dois calculé la taille de la structure à écrire sur le disque et hop ! Un fichier de 30 go :-p )

Psy³

JeanYvesYves
JeanYvesYves
Niveau 10
26 janvier 2005 à 09:15:27

lord_kalipsy > tu exageres quand meme :)

apres ça vient du programmeur :
faut éviter les

struct A
{
char a;
int b;
. ..
};

mais faire plutot :

struct A
{
int b;
char a;
. ..
};

Bref, ce genre d´otpimisations ( qui je suis sur sont faites direct par certains compilos je pense) sont juste pour les gens expérimentés qui recherchent les trucs tordus du C. Si vous etes débutants, ne vous cassez pas la tete avec ça, et faites comme ça vient :)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment