Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Questions idiotes

60 réponses
Avatar
TigrouMeow
Bonsoir ;)

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 ?

Personnellement, je pense :
1. &p
2. p

Merci de confirmer :)

--
TigrouMeow

10 réponses

1 2 3 4 5
Avatar
Emmanuel Delahaye
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.

--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"Clearly your code does not meet the original spec."
"You are sentenced to 30 lashes with a wet noodle."
-- Jerry Coffin in a.l.c.c++

Avatar
TigrouMeow
"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 :)


Avatar
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 ? :)



Avatar
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.




Avatar
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.




Avatar
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 !





Avatar
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

Avatar
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.



Avatar
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.

Avatar
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 ?

1 2 3 4 5