Cette expression me laisse perplexe et/ou ambigue.
On déclare var et on fixe sa taille et on alloue la mémoire adhoc.
J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de
la fac.
Pourquoi "sizeof".
A ce moment là, il n'en sait rien.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Deniau
A. P. wrote:
var = malloc(sizeof * var * 42) ;
= var = malloc(sizeof(*var)*42);
pas de pb.
a+, ld.
-- [ Laurent Deniau -- Scientific Computing & Data Analysis ] [ CERN -- European Center for Nuclear Research ] [ - http://cern.ch/Laurent.Deniau ] [ -- One becomes old when dreams become regrets -- ]
A. P. wrote:
var = malloc(sizeof * var * 42) ;
=
var = malloc(sizeof(*var)*42);
pas de pb.
a+, ld.
--
[ Laurent Deniau -- Scientific Computing & Data Analysis ]
[ CERN -- European Center for Nuclear Research ]
[ Laurent.Deniau@cern.ch - http://cern.ch/Laurent.Deniau ]
[ -- One becomes old when dreams become regrets -- ]
-- [ Laurent Deniau -- Scientific Computing & Data Analysis ] [ CERN -- European Center for Nuclear Research ] [ - http://cern.ch/Laurent.Deniau ] [ -- One becomes old when dreams become regrets -- ]
Yves ROMAN
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue. On déclare var et on fixe sa taille et on alloue la mémoire adhoc. J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de la fac. Pourquoi "sizeof". A ce moment là, il n'en sait rien.
On alloue la place pour 42 elements pointes par var
Personnellement je rajoute des parenthèses pour clarifier, ce qui donne
toto_t *var ; var = malloc(sizeof(* var) * 42) ;
ce qui revient à : var = malloc(sizeof(toto_t) * 42) ; soit la place pour 42 objets de type toto_t mais avec l'avantage que l'instruction marche aussi si var est déclaré en titi_t *titi ;
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue.
On déclare var et on fixe sa taille et on alloue la mémoire adhoc.
J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de
la fac.
Pourquoi "sizeof".
A ce moment là, il n'en sait rien.
On alloue la place pour 42 elements pointes par var
Personnellement je rajoute des parenthèses pour clarifier, ce qui donne
toto_t *var ;
var = malloc(sizeof(* var) * 42) ;
ce qui revient à :
var = malloc(sizeof(toto_t) * 42) ;
soit la place pour 42 objets de type toto_t
mais avec l'avantage que l'instruction marche aussi si var est déclaré en
titi_t *titi ;
Cette expression me laisse perplexe et/ou ambigue. On déclare var et on fixe sa taille et on alloue la mémoire adhoc. J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de la fac. Pourquoi "sizeof". A ce moment là, il n'en sait rien.
On alloue la place pour 42 elements pointes par var
Personnellement je rajoute des parenthèses pour clarifier, ce qui donne
toto_t *var ; var = malloc(sizeof(* var) * 42) ;
ce qui revient à : var = malloc(sizeof(toto_t) * 42) ; soit la place pour 42 objets de type toto_t mais avec l'avantage que l'instruction marche aussi si var est déclaré en titi_t *titi ;
A. P.
"Yves ROMAN" a écrit dans le message news:
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue.
toto_t *var ;
A ce stade-ci, on ne connait pas encore la taille de "toto_t"
var = malloc(sizeof(* var) * 42) ;
sizeof ???
ce qui revient à : var = malloc(sizeof(toto_t) * 42) ; soit la place pour 42 objets de type toto_t
idem.
-- A.P. J'suis bouché ou quoi ? Bon w-e.
"Yves ROMAN" <yves.roman@unilog.fr> a écrit dans le message news:
3F589191.9677333E@unilog.fr...
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue.
toto_t *var ;
A ce stade-ci, on ne connait pas encore la taille de "toto_t"
var = malloc(sizeof(* var) * 42) ;
sizeof ???
ce qui revient à :
var = malloc(sizeof(toto_t) * 42) ;
soit la place pour 42 objets de type toto_t
Cette expression me laisse perplexe et/ou ambigue.
toto_t *var ;
A ce stade-ci, on ne connait pas encore la taille de "toto_t"
var = malloc(sizeof(* var) * 42) ;
sizeof ???
ce qui revient à : var = malloc(sizeof(toto_t) * 42) ; soit la place pour 42 objets de type toto_t
idem.
-- A.P. J'suis bouché ou quoi ? Bon w-e.
Laurent Deniau
Sinese wrote:
On Fri, 5 Sep 2003 16:08:06 +0200 , A. P. wrote:
A ce stade-ci, on ne connait pas encore la taille de "toto_t"
Bah si tu connais la taille de toto_t.
Pas necessairement.
Tu l'as deja defini sinon ton toto_t *titi; ne passera jamais
Ca passe, meme si sizeof(toto_t) n'est pas connu (principe de l'ADT). C'est le sizeof(*var) qui ne passera pas.
a+, ld.
-- [ Laurent Deniau -- Scientific Computing & Data Analysis ] [ CERN -- European Center for Nuclear Research ] [ - http://cern.ch/Laurent.Deniau ] [ -- One becomes old when dreams become regrets -- ]
Sinese wrote:
On Fri, 5 Sep 2003 16:08:06 +0200 , A. P. <xxx@xxx> wrote:
A ce stade-ci, on ne connait pas encore la taille de "toto_t"
Bah si tu connais la taille de toto_t.
Pas necessairement.
Tu l'as deja defini sinon ton toto_t *titi; ne passera jamais
Ca passe, meme si sizeof(toto_t) n'est pas connu (principe de l'ADT). C'est le
sizeof(*var) qui ne passera pas.
a+, ld.
--
[ Laurent Deniau -- Scientific Computing & Data Analysis ]
[ CERN -- European Center for Nuclear Research ]
[ Laurent.Deniau@cern.ch - http://cern.ch/Laurent.Deniau ]
[ -- One becomes old when dreams become regrets -- ]
A ce stade-ci, on ne connait pas encore la taille de "toto_t"
Bah si tu connais la taille de toto_t.
Pas necessairement.
Tu l'as deja defini sinon ton toto_t *titi; ne passera jamais
Ca passe, meme si sizeof(toto_t) n'est pas connu (principe de l'ADT). C'est le sizeof(*var) qui ne passera pas.
a+, ld.
-- [ Laurent Deniau -- Scientific Computing & Data Analysis ] [ CERN -- European Center for Nuclear Research ] [ - http://cern.ch/Laurent.Deniau ] [ -- One becomes old when dreams become regrets -- ]
Emmanuel Delahaye
In 'fr.comp.lang.c', "A. P." wrote:
Tu veux dire FAQ?
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue.
Elle n'est pas ambigüe, tout au plus mal écrite :
var = malloc (sizeof *var * 42);
C'est plus clair?
On déclare var et on fixe sa taille et on alloue la mémoire adhoc.
- On ne déclare (ni ne définit) quoi que ce soit (pas de type). - On initialise une variable (probablement un pointeur typé) avec l'adresse d'un tableau alloué dynamiquement de 42 éléments du même type.
J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de la fac.
FAQ!
Pourquoi "sizeof". A ce moment là, il n'en sait rien.
Qui n'en sait rien?
sizeof *var retourne la taille d'un élément. sizeof *var * 42 retourne la taille de 42 éléments.
C'est pas clair?
-- -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', "A. P." <xxx@xxx> wrote:
Tu veux dire FAQ?
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue.
Elle n'est pas ambigüe, tout au plus mal écrite :
var = malloc (sizeof *var * 42);
C'est plus clair?
On déclare var et on fixe sa taille et on alloue la mémoire adhoc.
- On ne déclare (ni ne définit) quoi que ce soit (pas de type).
- On initialise une variable (probablement un pointeur typé) avec l'adresse
d'un tableau alloué dynamiquement de 42 éléments du même type.
J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de
la fac.
FAQ!
Pourquoi "sizeof".
A ce moment là, il n'en sait rien.
Qui n'en sait rien?
sizeof *var retourne la taille d'un élément.
sizeof *var * 42 retourne la taille de 42 éléments.
C'est pas clair?
--
-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/
Cette expression me laisse perplexe et/ou ambigue.
Elle n'est pas ambigüe, tout au plus mal écrite :
var = malloc (sizeof *var * 42);
C'est plus clair?
On déclare var et on fixe sa taille et on alloue la mémoire adhoc.
- On ne déclare (ni ne définit) quoi que ce soit (pas de type). - On initialise une variable (probablement un pointeur typé) avec l'adresse d'un tableau alloué dynamiquement de 42 éléments du même type.
J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de la fac.
FAQ!
Pourquoi "sizeof". A ce moment là, il n'en sait rien.
Qui n'en sait rien?
sizeof *var retourne la taille d'un élément. sizeof *var * 42 retourne la taille de 42 éléments.
C'est pas clair?
-- -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/
Emmanuel Delahaye
In 'fr.comp.lang.c', "A. P." wrote:
var = malloc(sizeof(* var) * 42) ;
sizeof ???
Et si tu ouvrais ton livre de C?
'sizeof' est un opérateur unaire C qui retourne la taille d'un objet en nombre de bytes.
-- -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', "A. P." <xxx@xxx> wrote:
var = malloc(sizeof(* var) * 42) ;
sizeof ???
Et si tu ouvrais ton livre de C?
'sizeof' est un opérateur unaire C qui retourne la taille d'un objet en
nombre de bytes.
--
-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/
'sizeof' est un opérateur unaire C qui retourne la taille d'un objet en nombre de bytes.
-- -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/
Erwan David
"A. P." écrivait :
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue. On déclare var et on fixe sa taille et on alloue la mémoire adhoc. J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de la fac. Pourquoi "sizeof". A ce moment là, il n'en sait rien.
C'est sizeof(*var) * 42 On alloue 42 fois la taille de la structure pointée par var, donc un tableau de 42 structures de ce type.
"A. P." <xxx@xxx> écrivait :
var = malloc(sizeof * var * 42) ;
Cette expression me laisse perplexe et/ou ambigue.
On déclare var et on fixe sa taille et on alloue la mémoire adhoc.
J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de
la fac.
Pourquoi "sizeof".
A ce moment là, il n'en sait rien.
C'est sizeof(*var) * 42
On alloue 42 fois la taille de la structure pointée par var, donc un
tableau de 42 structures de ce type.
Cette expression me laisse perplexe et/ou ambigue. On déclare var et on fixe sa taille et on alloue la mémoire adhoc. J'ai loupé quelque chose-là et à plusieurs endroits dans les exemples de la fac. Pourquoi "sizeof". A ce moment là, il n'en sait rien.
C'est sizeof(*var) * 42 On alloue 42 fois la taille de la structure pointée par var, donc un tableau de 42 structures de ce type.