Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si
le dernier caractère de premier tableau est immédiatement suivi en
mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ? Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres
exemples,
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Pas à ma connaissance.
Sur mon IBM (unix) il semble que cela soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Je n'arrive pas à faire de contre exemple, mais à moins de trouver le bout de norme qui dit que c'est le cas, il serait utile de faire un truc genre assert( sizeof(ta structure) == la somme des tailles des tableau) (d'ailleurs, ça peut être utile même si c'est dans la norme, juste histoire de vérifier que le compilo est conforme)
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Sebastien wrote:
Bonjour,
Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si
le dernier caractère de premier tableau est immédiatement suivi en
mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Pas à ma connaissance.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres
exemples,
Je n'arrive pas à faire de contre exemple, mais à moins de
trouver le bout de norme qui dit que c'est le cas, il serait
utile de faire un truc genre
assert( sizeof(ta structure) == la somme des tailles des tableau)
(d'ailleurs, ça peut être utile même si c'est dans la norme,
juste histoire de vérifier que le compilo est conforme)
Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Pas à ma connaissance.
Sur mon IBM (unix) il semble que cela soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Je n'arrive pas à faire de contre exemple, mais à moins de trouver le bout de norme qui dit que c'est le cas, il serait utile de faire un truc genre assert( sizeof(ta structure) == la somme des tailles des tableau) (d'ailleurs, ça peut être utile même si c'est dans la norme, juste histoire de vérifier que le compilo est conforme)
Marc Boyer -- Lying for having sex or lying for making war? Trust US presidents :-(
Richard Delorme
Bonjour,
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Réponse courte : Non.
6.7.2.1 Structure and union specifiers
[#12] [...] There may be unnamed padding within a structure object, but not at its beginning.
-- Richard
Bonjour,
Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si
le dernier caractère de premier tableau est immédiatement suivi en
mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Réponse courte : Non.
6.7.2.1 Structure and union specifiers
[#12] [...] There may be
unnamed padding within a structure object, but not at its
beginning.
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Réponse courte : Non.
6.7.2.1 Structure and union specifiers
[#12] [...] There may be unnamed padding within a structure object, but not at its beginning.
-- Richard
Sebastien
"Richard Delorme" a écrit dans le message news: 3f27e2e4$0$9629$
Bonjour,
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Réponse courte : Non.
6.7.2.1 Structure and union specifiers
[#12] [...] There may be unnamed padding within a structure object, but not at its beginning.
-- Richard
Ok, merci c'est clair.
Sébastien
"Richard Delorme" <abulmo@nospam.fr> a écrit dans le message news:
3f27e2e4$0$9629$7a628cd7@news.club-internet.fr...
Bonjour,
Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si
le dernier caractère de premier tableau est immédiatement suivi en
mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Réponse courte : Non.
6.7.2.1 Structure and union specifiers
[#12] [...] There may be
unnamed padding within a structure object, but not at its
beginning.
"Richard Delorme" a écrit dans le message news: 3f27e2e4$0$9629$
Bonjour,
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Esce toujours vérifié ou non ?
Réponse courte : Non.
6.7.2.1 Structure and union specifiers
[#12] [...] There may be unnamed padding within a structure object, but not at its beginning.
-- Richard
Ok, merci c'est clair.
Sébastien
Emmanuel Delahaye
In 'fr.comp.lang.c', (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', svinot@capgemini.fr (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si
le dernier caractère de premier tableau est immédiatement suivi en
mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres
exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Tobias Oed
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
Le standard le permet mais pour des tableaux de chars je ne vois pas pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour mais par curiosite, peut tu faire tourner ca:
In 'fr.comp.lang.c', svinot@capgemini.fr (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si
le dernier caractère de premier tableau est immédiatement suivi en
mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du
padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres
exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
Le standard le permet mais pour des tableaux de chars je ne vois pas
pourquoi il y aurait du padding sur ces architectures. En particulier sur
les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour
mais par curiosite, peut tu faire tourner ca:
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
Le standard le permet mais pour des tableaux de chars je ne vois pas pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour mais par curiosite, peut tu faire tourner ca:
Le 30/07/03 20:26, dans <bg92k0$m8j4u$, « Tobias Oed » a écrit :
Le standard le permet mais pour des tableaux de chars je ne vois pas pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour mais par curiosite, peut tu faire tourner ca:
-- Éric Lévénez -- <http://www.levenez.com> Unix is not only an OS, it's a way of life.
Le 30/07/03 20:26, dans <bg92k0$m8j4u$1@ID-97389.news.uni-berlin.de>,
« Tobias Oed » <tobias@physics.odu.edu> a écrit :
Le standard le permet mais pour des tableaux de chars je ne vois pas
pourquoi il y aurait du padding sur ces architectures. En particulier sur
les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour
mais par curiosite, peut tu faire tourner ca:
Le 30/07/03 20:26, dans <bg92k0$m8j4u$, « Tobias Oed » a écrit :
Le standard le permet mais pour des tableaux de chars je ne vois pas pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour mais par curiosite, peut tu faire tourner ca:
-- Éric Lévénez -- <http://www.levenez.com> Unix is not only an OS, it's a way of life.
Emmanuel Delahaye
In 'fr.comp.lang.c', Tobias Oed wrote:
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Le standard le permet mais pour des tableaux de chars je ne vois pas
pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour mais par curiosite, peut tu faire tourner ca:
Pareil chez moi en 16 ou 32 bits avec différentes optins d'alignement.
Il y a des rigolos qui s'amusent parfois à faire des cast de la mort genre:
struct foo foo;
int *p = (int*) &foo.b;
*p = 1234; En 68k, BOUM!
Pour éviter ça, il se peut qu'il y ait une option de compilation qui garantisse que tous les éléments soient alignés correctement (comme les adresses retournées par malloc()).
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Tobias Oed <tobias@physics.odu.edu> wrote:
Non. Il peut y avoir des contraintes d'alignement qui induisent du
padding.
Le standard le permet mais pour des tableaux de chars je ne vois pas
pourquoi il y aurait du padding sur ces architectures. En particulier
sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de
compilo pour mais par curiosite, peut tu faire tourner ca:
Pareil chez moi en 16 ou 32 bits avec différentes optins d'alignement.
Il y a des rigolos qui s'amusent parfois à faire des cast de la mort genre:
struct foo foo;
int *p = (int*) &foo.b;
*p = 1234; En 68k, BOUM!
Pour éviter ça, il se peut qu'il y ait une option de compilation qui
garantisse que tous les éléments soient alignés correctement (comme les
adresses retournées par malloc()).
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
<blank line>
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Le standard le permet mais pour des tableaux de chars je ne vois pas
pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour mais par curiosite, peut tu faire tourner ca:
Pareil chez moi en 16 ou 32 bits avec différentes optins d'alignement.
Il y a des rigolos qui s'amusent parfois à faire des cast de la mort genre:
struct foo foo;
int *p = (int*) &foo.b;
*p = 1234; En 68k, BOUM!
Pour éviter ça, il se peut qu'il y ait une option de compilation qui garantisse que tous les éléments soient alignés correctement (comme les adresses retournées par malloc()).
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html <blank line> FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Sebastien
"Tobias Oed" a écrit dans le message news: bg92k0$m8j4u$
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
Le standard le permet mais pour des tableaux de chars je ne vois pas pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour
J'ai fait tourné ton prog et j'obtiens effectivement aussi 3. Je me demande donc si on peut "raisonnablement" supposer que c'est toujours le cas (lorsque la structure ne contient que des tableaux de char).
Sébastien.
"Tobias Oed" <tobias@physics.odu.edu> a écrit dans le message news:
bg92k0$m8j4u$1@ID-97389.news.uni-berlin.de...
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', svinot@capgemini.fr (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si
le dernier caractère de premier tableau est immédiatement suivi en
mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du
padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres
exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
Le standard le permet mais pour des tableaux de chars je ne vois pas
pourquoi il y aurait du padding sur ces architectures. En particulier sur
les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo
pour
J'ai fait tourné ton prog et j'obtiens effectivement aussi 3. Je me demande
donc si on peut "raisonnablement" supposer que c'est toujours le cas
(lorsque la structure ne contient que des tableaux de char).
"Tobias Oed" a écrit dans le message news: bg92k0$m8j4u$
Emmanuel Delahaye wrote:
In 'fr.comp.lang.c', (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient". C'est à dire comme si le dernier caractère de premier tableau est immédiatement suivi en mémoire par le premier caractère du second tableau.
Pur hasard.
Esce toujours vérifié ou non ?
Non. Il peut y avoir des contraintes d'alignement qui induisent du padding.
Sur mon IBM (unix) il semble que cela
soit correct mais je m'intérroge. Merci si vous avez des contres exemples,
Plein en 68000 et Power PC! Même en x86 mode protégé, ça doit se trouver
Le standard le permet mais pour des tableaux de chars je ne vois pas pourquoi il y aurait du padding sur ces architectures. En particulier sur les 68000 (le seul sur lequel j'ai fait de l'asm). J'ai pas de compilo pour
J'ai fait tourné ton prog et j'obtiens effectivement aussi 3. Je me demande donc si on peut "raisonnablement" supposer que c'est toujours le cas (lorsque la structure ne contient que des tableaux de char).
Sébastien.
Sebastien
"Antoine Leca" a écrit dans le message news: bgak9s$o9l$
[Je n'ai pas l'original, je répond sur la réponse]
In 'fr.comp.lang.c', (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient".
Si tu veux que cela marche, oublie les structures, et alloue les tableaux (de caractères, pas d'autre chose) les uns à la suite des autres. Ça, c'est garanti OK en C.
Antoine
Je suis tout à fait d'accord avec toi, sauf que je ne fait qu'apporter une modification à des sources existant, et faire cela impliquerait une modification longue et fastidieuse.D'autant que pour le moment cela fonctionne et que je n'ai pas le temps de procéder à cet ajustement (dans un premier temps en tout cas).
Sébastien
"Antoine Leca" <root@localhost.gov> a écrit dans le message news:
bgak9s$o9l$1@shakotay.alphanet.ch...
[Je n'ai pas l'original, je répond sur la réponse]
In 'fr.comp.lang.c', svinot@capgemini.fr (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des
structures contenant plusieurs tableaux de char. Il utilise par la
suite ces tableaux "comme s'ils se suivaient".
Si tu veux que cela marche, oublie les structures, et alloue
les tableaux (de caractères, pas d'autre chose) les uns à la
suite des autres.
Ça, c'est garanti OK en C.
Antoine
Je suis tout à fait d'accord avec toi, sauf que je ne fait qu'apporter une
modification à des sources existant, et faire cela impliquerait une
modification longue et fastidieuse.D'autant que pour le moment cela
fonctionne et que je n'ai pas le temps de procéder à cet ajustement (dans un
premier temps en tout cas).
"Antoine Leca" a écrit dans le message news: bgak9s$o9l$
[Je n'ai pas l'original, je répond sur la réponse]
In 'fr.comp.lang.c', (Sebastien) wrote:
Je suis en train de mettre à jour un programme qui utilise des structures contenant plusieurs tableaux de char. Il utilise par la suite ces tableaux "comme s'ils se suivaient".
Si tu veux que cela marche, oublie les structures, et alloue les tableaux (de caractères, pas d'autre chose) les uns à la suite des autres. Ça, c'est garanti OK en C.
Antoine
Je suis tout à fait d'accord avec toi, sauf que je ne fait qu'apporter une modification à des sources existant, et faire cela impliquerait une modification longue et fastidieuse.D'autant que pour le moment cela fonctionne et que je n'ai pas le temps de procéder à cet ajustement (dans un premier temps en tout cas).
Sébastien
Stephane Legras-Decussy
"Sebastien" a écrit dans le message news: bgal24$9rk$
Si tu veux que cela marche, oublie les structures, et alloue les tableaux (de caractères, pas d'autre chose) les uns à la suite des autres. Ça, c'est garanti OK en C.
ah bon ?
tu as le passage de la norme qui dit ça ?
"Sebastien" <svinot@telecom.capgemini.fr> a écrit dans le message news:
bgal24$9rk$1@s1.read.news.oleane.net...
Si tu veux que cela marche, oublie les structures, et alloue
les tableaux (de caractères, pas d'autre chose) les uns à la
suite des autres.
Ça, c'est garanti OK en C.
"Sebastien" a écrit dans le message news: bgal24$9rk$
Si tu veux que cela marche, oublie les structures, et alloue les tableaux (de caractères, pas d'autre chose) les uns à la suite des autres. Ça, c'est garanti OK en C.