J'ai une question à priori idiote mais peut-être pas autant que ça.
En fait c'est plus un problème de comprendre correctement une
question qui est en anglais. Il y en a deux, les voici :
int *p;
1. How can we have p address ?
2. How can we have the address contained by p ?
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
Merci :)
TigrouMeow
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
"TigrouMeow" <TigrouMeowMEOW@OnLineONLINE.Fr> a écrit dans le message de
news: 41e5a283$0$29135$636a15ce@news.free.fr...
"Emmanuel Delahaye" <emdel@YOURBRAnoos.fr> a écrit dans le message de
news: mn.65727d51ccab7170.15512@YOURBRAnoos.fr...
TigrouMeow wrote on 12/01/05 :
int *p;
1. How can we have p address ?
2. How can we have the address contained by p ?
Personnellement, je pense :
1. &p
2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis
il y a un rapport avec les champs de bits que je ne connais pas
je poste la question car c'est sympa :)
Soit la structure :
struct toto
{
int a;
long b;
char c;
};
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
Eric Lévénez
Le 12/01/05 23:32, dans <41e5a5de$0$11961$, « TigrouMeow » a écrit :
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Heu, tu vas poster toutes les questions de ton devoir une à une ?
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 12/01/05 23:32, dans <41e5a5de$0$11961$636a15ce@news.free.fr>,
« TigrouMeow » <TigrouMeowMEOW@OnLineONLINE.Fr> a écrit :
"TigrouMeow" <TigrouMeowMEOW@OnLineONLINE.Fr> a écrit dans le message de
news: 41e5a283$0$29135$636a15ce@news.free.fr...
"Emmanuel Delahaye" <emdel@YOURBRAnoos.fr> a écrit dans le message de
news: mn.65727d51ccab7170.15512@YOURBRAnoos.fr...
TigrouMeow wrote on 12/01/05 :
int *p;
1. How can we have p address ?
2. How can we have the address contained by p ?
Personnellement, je pense :
1. &p
2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis
il y a un rapport avec les champs de bits que je ne connais pas
je poste la question car c'est sympa :)
Heu, tu vas poster toutes les questions de ton devoir une à une ?
Soit la structure :
struct toto
{
int a;
long b;
char c;
};
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Le 12/01/05 23:32, dans <41e5a5de$0$11961$, « TigrouMeow » a écrit :
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Heu, tu vas poster toutes les questions de ton devoir une à une ?
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Guillaume L.
On Wed, 12 Jan 2005 23:32:45 +0100, TigrouMeow wrote :
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
Pas de rapport avec les champs de bits. sizeof() renvoie sizeof(int)+sizeof(long)+sizeof(char)+le padding entre les éléments de la structure. La valeur exacte dépend de l'architecture.
Guillaume Leconte
-- You're not a beautiful and unique snowflake.
On Wed, 12 Jan 2005 23:32:45 +0100, TigrouMeow <TigrouMeowMEOW@OnLineONLINE.Fr>
wrote :
"TigrouMeow" <TigrouMeowMEOW@OnLineONLINE.Fr> a écrit dans le message de
news: 41e5a283$0$29135$636a15ce@news.free.fr...
"Emmanuel Delahaye" <emdel@YOURBRAnoos.fr> a écrit dans le message de
news: mn.65727d51ccab7170.15512@YOURBRAnoos.fr...
TigrouMeow wrote on 12/01/05 :
int *p;
1. How can we have p address ?
2. How can we have the address contained by p ?
Personnellement, je pense :
1. &p
2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis
il y a un rapport avec les champs de bits que je ne connais pas
je poste la question car c'est sympa :)
Soit la structure :
struct toto
{
int a;
long b;
char c;
};
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
Pas de rapport avec les champs de bits.
sizeof() renvoie sizeof(int)+sizeof(long)+sizeof(char)+le padding entre les
éléments de la structure.
La valeur exacte dépend de l'architecture.
On Wed, 12 Jan 2005 23:32:45 +0100, TigrouMeow wrote :
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
Pas de rapport avec les champs de bits. sizeof() renvoie sizeof(int)+sizeof(long)+sizeof(char)+le padding entre les éléments de la structure. La valeur exacte dépend de l'architecture.
Guillaume Leconte
-- You're not a beautiful and unique snowflake.
TigrouMeow
"Eric L é v é nez" a écrit dans le message de news: BE0B6643.17531%
Le 12/01/05 23:32, dans <41e5a5de$0$11961$,
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Heu, tu vas poster toutes les questions de ton devoir une à une ?
En fait c'est pas un devoir, mais c'est un exam de passage pour un concours que j'ai récupéré de l'an dernier, malheureusement j'ai pas les réponses, et vu que je le prépare... voilà je demande un peu d'aide :)
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
Oui bon c'est vrai, il y a une erreur de syntaxe... soit sizeof(struct toto). (et qui donne 12 octets).
Je voulais en venir ensuite par l'utilisation de : __attribute__ ((__packed__)). (qui permet d'avoir une struct de 9 octets pour le même contenu).
En fait j'ai cherché des explications sur google, il y a bien des documents en anglais, mais je comprends pas très bien ce que ça fait, alors j'aurais aimé avoir une petite explication concise ;) Merci beaucoup !
"Eric L é v é nez" <news@levenez.com.invalid> a écrit dans le message de
news: BE0B6643.17531%news@levenez.com.invalid...
Le 12/01/05 23:32, dans <41e5a5de$0$11961$636a15ce@news.free.fr>,
"TigrouMeow" <TigrouMeowMEOW@OnLineONLINE.Fr> a écrit dans le message de
news: 41e5a283$0$29135$636a15ce@news.free.fr...
"Emmanuel Delahaye" <emdel@YOURBRAnoos.fr> a écrit dans le message de
news: mn.65727d51ccab7170.15512@YOURBRAnoos.fr...
TigrouMeow wrote on 12/01/05 :
int *p;
1. How can we have p address ?
2. How can we have the address contained by p ?
Personnellement, je pense :
1. &p
2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis
il y a un rapport avec les champs de bits que je ne connais pas
je poste la question car c'est sympa :)
Heu, tu vas poster toutes les questions de ton devoir une à une ?
En fait c'est pas un devoir, mais c'est un exam de passage pour
un concours que j'ai récupéré de l'an dernier, malheureusement
j'ai pas les réponses, et vu que je le prépare... voilà je demande
un peu d'aide :)
Soit la structure :
struct toto
{
int a;
long b;
char c;
};
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
Oui bon c'est vrai, il y a une erreur de syntaxe...
soit sizeof(struct toto).
(et qui donne 12 octets).
Je voulais en venir ensuite par l'utilisation de :
__attribute__ ((__packed__)).
(qui permet d'avoir une struct de 9 octets pour le même
contenu).
En fait j'ai cherché des explications sur google, il y a bien
des documents en anglais, mais je comprends pas très bien
ce que ça fait, alors j'aurais aimé avoir une petite explication
concise ;) Merci beaucoup !
"Eric L é v é nez" a écrit dans le message de news: BE0B6643.17531%
Le 12/01/05 23:32, dans <41e5a5de$0$11961$,
"TigrouMeow" a écrit dans le message de news: 41e5a283$0$29135$
"Emmanuel Delahaye" a écrit dans le message de news:
TigrouMeow wrote on 12/01/05 :
int *p; 1. How can we have p address ? 2. How can we have the address contained by p ?
Personnellement, je pense : 1. &p 2. p
Oui.
J'en ai une autre un peu plus interressante je pense... à mon avis il y a un rapport avec les champs de bits que je ne connais pas je poste la question car c'est sympa :)
Heu, tu vas poster toutes les questions de ton devoir une à une ?
En fait c'est pas un devoir, mais c'est un exam de passage pour un concours que j'ai récupéré de l'an dernier, malheureusement j'ai pas les réponses, et vu que je le prépare... voilà je demande un peu d'aide :)
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
Oui bon c'est vrai, il y a une erreur de syntaxe... soit sizeof(struct toto). (et qui donne 12 octets).
Je voulais en venir ensuite par l'utilisation de : __attribute__ ((__packed__)). (qui permet d'avoir une struct de 9 octets pour le même contenu).
En fait j'ai cherché des explications sur google, il y a bien des documents en anglais, mais je comprends pas très bien ce que ça fait, alors j'aurais aimé avoir une petite explication concise ;) Merci beaucoup !
flure
Oui bon c'est vrai, il y a une erreur de syntaxe... soit sizeof(struct toto). (et qui donne 12 octets).
Il me semble que sizeof (struct toto) dépend de ta machine, de ton OS, et de ton compilateur.
Je voulais en venir ensuite par l'utilisation de : __attribute__ ((__packed__)). (qui permet d'avoir une struct de 9 octets pour le même contenu).
Il me semble que ce sont des directives de compilateur. Je ne sais pas si c'est standard. Personnellement, j'évite.
En fait j'ai cherché des explications sur google, il y a bien des documents en anglais, mais je comprends pas très bien ce que ça fait, alors j'aurais aimé avoir une petite explication concise ;) Merci beaucoup !
Si tu te mets à la programmation, tu as tout interêt à te faire à la lecture de documentations en anglais ...
-- Florent "flure" C. http://flure.free.fr
Oui bon c'est vrai, il y a une erreur de syntaxe...
soit sizeof(struct toto).
(et qui donne 12 octets).
Il me semble que sizeof (struct toto) dépend de ta machine, de ton OS,
et de ton compilateur.
Je voulais en venir ensuite par l'utilisation de :
__attribute__ ((__packed__)).
(qui permet d'avoir une struct de 9 octets pour le même
contenu).
Il me semble que ce sont des directives de compilateur. Je ne sais pas
si c'est standard. Personnellement, j'évite.
En fait j'ai cherché des explications sur google, il y a bien
des documents en anglais, mais je comprends pas très bien
ce que ça fait, alors j'aurais aimé avoir une petite explication
concise ;) Merci beaucoup !
Si tu te mets à la programmation, tu as tout interêt à te faire à la
lecture de documentations en anglais ...
Oui bon c'est vrai, il y a une erreur de syntaxe... soit sizeof(struct toto). (et qui donne 12 octets).
Il me semble que sizeof (struct toto) dépend de ta machine, de ton OS, et de ton compilateur.
Je voulais en venir ensuite par l'utilisation de : __attribute__ ((__packed__)). (qui permet d'avoir une struct de 9 octets pour le même contenu).
Il me semble que ce sont des directives de compilateur. Je ne sais pas si c'est standard. Personnellement, j'évite.
En fait j'ai cherché des explications sur google, il y a bien des documents en anglais, mais je comprends pas très bien ce que ça fait, alors j'aurais aimé avoir une petite explication concise ;) Merci beaucoup !
Si tu te mets à la programmation, tu as tout interêt à te faire à la lecture de documentations en anglais ...
-- Florent "flure" C. http://flure.free.fr
Eric Lévénez
Le 12/01/05 23:47, dans <41e5a901$0$11944$, « TigrouMeow » a écrit :
"Eric L é v é nez" a écrit dans le message de news: BE0B6643.17531%
Le 12/01/05 23:32, dans <41e5a5de$0$11961$,
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
Oui bon c'est vrai, il y a une erreur de syntaxe... soit sizeof(struct toto). (et qui donne 12 octets).
Non. sizeof ne retourne pas la taille en octet, mais en char. Un char a une taille variable suivant les architectures et les compilateurs.
Je voulais en venir ensuite par l'utilisation de : __attribute__ ((__packed__)). (qui permet d'avoir une struct de 9 octets pour le même contenu).
Bin non. En plus d'être non standard, le résultat n'est pas 9 octets ou même 9 char. Par exemple j'utilise actuellement un DSP qui des char de même longueur que les long (32 bits), et le résultat du sizeof est donc 3 et pas 12 ou 9.
En fait j'ai cherché des explications sur google, il y a bien des documents en anglais, mais je comprends pas très bien ce que ça fait, alors j'aurais aimé avoir une petite explication concise ;) Merci beaucoup !
Je pense que ce genre d'explication doit être faite une fois pas semaine ici. Je laisse au courageux le soin de répéter encore une fois les mêmes explications.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 12/01/05 23:47, dans <41e5a901$0$11944$636a15ce@news.free.fr>,
« TigrouMeow » <TigrouMeowMEOW@OnLineONLINE.Fr> a écrit :
"Eric L é v é nez" <news@levenez.com.invalid> a écrit dans le message de
news: BE0B6643.17531%news@levenez.com.invalid...
Le 12/01/05 23:32, dans <41e5a5de$0$11961$636a15ce@news.free.fr>,
Soit la structure :
struct toto
{
int a;
long b;
char c;
};
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
Oui bon c'est vrai, il y a une erreur de syntaxe...
soit sizeof(struct toto).
(et qui donne 12 octets).
Non. sizeof ne retourne pas la taille en octet, mais en char. Un char a une
taille variable suivant les architectures et les compilateurs.
Je voulais en venir ensuite par l'utilisation de :
__attribute__ ((__packed__)).
(qui permet d'avoir une struct de 9 octets pour le même
contenu).
Bin non. En plus d'être non standard, le résultat n'est pas 9 octets ou même
9 char. Par exemple j'utilise actuellement un DSP qui des char de même
longueur que les long (32 bits), et le résultat du sizeof est donc 3 et pas
12 ou 9.
En fait j'ai cherché des explications sur google, il y a bien
des documents en anglais, mais je comprends pas très bien
ce que ça fait, alors j'aurais aimé avoir une petite explication
concise ;) Merci beaucoup !
Je pense que ce genre d'explication doit être faite une fois pas semaine
ici. Je laisse au courageux le soin de répéter encore une fois les mêmes
explications.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Le 12/01/05 23:47, dans <41e5a901$0$11944$, « TigrouMeow » a écrit :
"Eric L é v é nez" a écrit dans le message de news: BE0B6643.17531%
Le 12/01/05 23:32, dans <41e5a5de$0$11961$,
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ?
Rien.
Et surtout... pourquoi ? :)
Parce que cela donnera une erreur de syntaxe.
Oui bon c'est vrai, il y a une erreur de syntaxe... soit sizeof(struct toto). (et qui donne 12 octets).
Non. sizeof ne retourne pas la taille en octet, mais en char. Un char a une taille variable suivant les architectures et les compilateurs.
Je voulais en venir ensuite par l'utilisation de : __attribute__ ((__packed__)). (qui permet d'avoir une struct de 9 octets pour le même contenu).
Bin non. En plus d'être non standard, le résultat n'est pas 9 octets ou même 9 char. Par exemple j'utilise actuellement un DSP qui des char de même longueur que les long (32 bits), et le résultat du sizeof est donc 3 et pas 12 ou 9.
En fait j'ai cherché des explications sur google, il y a bien des documents en anglais, mais je comprends pas très bien ce que ça fait, alors j'aurais aimé avoir une petite explication concise ;) Merci beaucoup !
Je pense que ce genre d'explication doit être faite une fois pas semaine ici. Je laisse au courageux le soin de répéter encore une fois les mêmes explications.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Emmanuel Delahaye
TigrouMeow wrote on 12/01/05 :
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
Ca dépend de l'implémentation.
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"Mal nommer les choses c'est ajouter du malheur au monde." -- Albert Camus.
TigrouMeow wrote on 12/01/05 :
Soit la structure :
struct toto
{
int a;
long b;
char c;
};
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
Ca dépend de l'implémentation.
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
"Mal nommer les choses c'est ajouter du malheur au
monde." -- Albert Camus.
Soit la structure : struct toto { int a; long b; char c; };
Que renvoi un sizeof(toto) ? Et surtout... pourquoi ? :)
Ca dépend de l'implémentation.
-- Emmanuel The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html The C-library: http://www.dinkumware.com/refxc.html
"Mal nommer les choses c'est ajouter du malheur au monde." -- Albert Camus.
gregg
Eric Lévénez wrote:
Non. sizeof ne retourne pas la taille en octet, mais en char. Un char a une taille variable suivant les architectures et les compilateurs.
Ahhhhh ??!
Il me semble que le sujet a déjà été évoqué dans ce forum, et que char valait 1 octet quelque soit l'architecture ( ce qui motivait l'utilisation de "1" plutôt que de "sizeof(char)" ).
Dans mon K&R2, je trouve ça:
"char character - a single byte" (p. 9) "char a single byte, capable of holding one character in the local character set" (p. 36) "when sizeof is applied to a char, the result is 1" (p. 204)
Quid ?
Eric Lévénez wrote:
Non. sizeof ne retourne pas la taille en octet, mais en char. Un char a une
taille variable suivant les architectures et les compilateurs.
Ahhhhh ??!
Il me semble que le sujet a déjà été évoqué dans ce forum, et que char
valait 1 octet quelque soit l'architecture ( ce qui motivait
l'utilisation de "1" plutôt que de "sizeof(char)" ).
Dans mon K&R2, je trouve ça:
"char character - a single byte" (p. 9)
"char a single byte, capable of holding one character in the local
character set" (p. 36)
"when sizeof is applied to a char, the result is 1" (p. 204)
Non. sizeof ne retourne pas la taille en octet, mais en char. Un char a une taille variable suivant les architectures et les compilateurs.
Ahhhhh ??!
Il me semble que le sujet a déjà été évoqué dans ce forum, et que char valait 1 octet quelque soit l'architecture ( ce qui motivait l'utilisation de "1" plutôt que de "sizeof(char)" ).
Dans mon K&R2, je trouve ça:
"char character - a single byte" (p. 9) "char a single byte, capable of holding one character in the local character set" (p. 36) "when sizeof is applied to a char, the result is 1" (p. 204)