A voir également:
- Taille exact d'une structure C/C++
- Comment réduire la taille d'un fichier - Guide
- Comment reduire la taille d'une photo - Guide
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Afficher taille dossier windows - Guide
- Taille iphone 14 - Guide
6 réponses
Salut,
Tu ne peux pas connaitre à l'avance la taille memoire de ta structure car tu ne sais pas comment le compilo va aligner en memoire les composants de ta structure.
De toute façon, pourqoui vouloir une structure de 6ko?
A+
Damien
Tu ne peux pas connaitre à l'avance la taille memoire de ta structure car tu ne sais pas comment le compilo va aligner en memoire les composants de ta structure.
De toute façon, pourqoui vouloir une structure de 6ko?
A+
Damien
Utilisateur anonyme
15 juil. 2004 à 00:05
15 juil. 2004 à 00:05
Bonjour,
Je suis d'accord avec Damien, cela dépend de l'organisation
de la structure de stockage, voici ce qu'en j'en ai trouvé:
je cite :
[
Les membres d'une structure ne sont pas nécessairement stockés dans des octets consécutifs de la mémoire. Il y a parfois des trous dans un structure parce que les ordinateurs peuvent stocker des types de données spécifiques seulement à certaines limites de la mémoire telles que le demi-mot, le mot ou le double-mot. Un mot est une unité de mémoire standard servant à stocker des données dans un ordinateur et est habituellement représenté par 2 ou 4 octets. Considérons le définition de la structure suivante, ou les variables (des objets réels, en fait) echantillon1 et echantillon2 dy type Exemple sont déclarées:
struct Exemple {
char c;
int i;
} echantillon1,echantillon2;
Un ordinateur fonctionnant avec des mots de 2 octets (16bits) peut réclamer que chacun des membres de Exemple soient alignés à la limite du mot, c'est à dire au début d'un mot (ceci est strictement dépendant de la machine).
L'exemple binaire suivant montre un exemple d'alignement de stockage pour un objet du type Exemple qui reçoit le caractère 'a' et l'entier 97. Si les membres sont mémorisés à partir des limites de mots, il en résulte un trou d'un octet (l'octet 1 dans l'exemple binaire) dans le stockage des objets du type Exemple.
Exemple binaire:
Octet 0.............1............2.............3............
.........01100001 ............ 00000000 01100001
]
Fin de citation
Il faut la notion de structure interne d'un ordinateur
pour bien en comprendre le sens.
Amicalement
Lupin
Je suis d'accord avec Damien, cela dépend de l'organisation
de la structure de stockage, voici ce qu'en j'en ai trouvé:
je cite :
[
Les membres d'une structure ne sont pas nécessairement stockés dans des octets consécutifs de la mémoire. Il y a parfois des trous dans un structure parce que les ordinateurs peuvent stocker des types de données spécifiques seulement à certaines limites de la mémoire telles que le demi-mot, le mot ou le double-mot. Un mot est une unité de mémoire standard servant à stocker des données dans un ordinateur et est habituellement représenté par 2 ou 4 octets. Considérons le définition de la structure suivante, ou les variables (des objets réels, en fait) echantillon1 et echantillon2 dy type Exemple sont déclarées:
struct Exemple {
char c;
int i;
} echantillon1,echantillon2;
Un ordinateur fonctionnant avec des mots de 2 octets (16bits) peut réclamer que chacun des membres de Exemple soient alignés à la limite du mot, c'est à dire au début d'un mot (ceci est strictement dépendant de la machine).
L'exemple binaire suivant montre un exemple d'alignement de stockage pour un objet du type Exemple qui reçoit le caractère 'a' et l'entier 97. Si les membres sont mémorisés à partir des limites de mots, il en résulte un trou d'un octet (l'octet 1 dans l'exemple binaire) dans le stockage des objets du type Exemple.
Exemple binaire:
Octet 0.............1............2.............3............
.........01100001 ............ 00000000 01100001
]
Fin de citation
Il faut la notion de structure interne d'un ordinateur
pour bien en comprendre le sens.
Amicalement
Lupin
essome
Messages postés
11
Date d'inscription
mercredi 14 juillet 2004
Statut
Membre
Dernière intervention
1 septembre 2004
15 juil. 2004 à 10:00
15 juil. 2004 à 10:00
Bonjour
En fait il s'agit d'une struct qui sera une unité d'information dans un fichier que mon application gere. Donc le superfu me genait quelque peu.
Merci pour tout
En fait il s'agit d'une struct qui sera une unité d'information dans un fichier que mon application gere. Donc le superfu me genait quelque peu.
Merci pour tout
Utilisateur anonyme
15 juil. 2004 à 18:45
15 juil. 2004 à 18:45
Re :
Si cela as pu t'aider à comprendre, tant mieux :)
Lupin
Si cela as pu t'aider à comprendre, tant mieux :)
Lupin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bjour Lupin!
Justement j'ai compris et je vais regrouper dans ma declaration les info de sorte que des info consécutives forment des mots (16 ou 32 bit selon la machine) et sa marche à merveille. pas de soucis à me faire pr le changement de machine, j'utilise le même processeur partout.
amicalement, essome
Justement j'ai compris et je vais regrouper dans ma declaration les info de sorte que des info consécutives forment des mots (16 ou 32 bit selon la machine) et sa marche à merveille. pas de soucis à me faire pr le changement de machine, j'utilise le même processeur partout.
amicalement, essome
Utilisateur anonyme
16 juil. 2004 à 07:19
16 juil. 2004 à 07:19
re:
En effet, et je crois que le 16 bits est en voie de disparition,
nous en somme au 32 bits en production puisque le 64 est
disponible en version spéciale.
Lupin
En effet, et je crois que le 16 bits est en voie de disparition,
nous en somme au 32 bits en production puisque le 64 est
disponible en version spéciale.
Lupin