Ben si, il aime.
Sauf si tu compiles en C++, bien entendu...
Ben si, il aime.
Sauf si tu compiles en C++, bien entendu...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
en effet je compile en c++ mais je ne trouve pas ca logique en c!
Rien ne se perd, rien ne se crée, tout se transforme
------- -------
C'est pourtant la norme du C.
void* est implicitement convertible dans les deux sens...
Ça permet de faire cette définition de NULL pour la plupart des compilateurs, réservant ainsi NULL aux pointeurs:
Je dis la plupart, car il me semble que certains compilateurs possèdent une définition interne, genre #define NULL __null...
Code : Sélectionner tout - Visualiser dans une fenêtre à part #define NULL ((void*)0)
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
C'est pas logique et c'est un trou dans le système de types du C.Envoyé par jerem2000
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Moi je n'ai fait que de te donner une solution en C ANSI/ISO rien d'autre, après si tu compiles en C++ c'est toi qui vois mais moi je ne compile qu'en CEnvoyé par jerem2000
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Moi, je compile le C en C et le C++ en C++, comme toute personne devrait le faire...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Tu n'as pas oublié de faire + 1 pour le zéro terminal au moins ?Envoyé par jerem2000
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
Pourquoi ?Envoyé par Jean-Marc.Bourguet
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
la fonction renvoi du void donc pas de return et on recup un char * ! bizar comme procédé qd meme!
Rien ne se perd, rien ne se crée, tout se transforme
------- -------
void*, pas void tout court...
void* étant le type de pointeur générique.
D'ailleurs, en C ou il n'existe qu'un seul opérateur de transtypage, la conversion implicite de void* est un bon moyen d'éviter les risques de perdre de la const-correctness en convertissant un pointeur...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Rien de bizzard, c'est LE type générique du Langage C, il permet de stocker n'importe quel type de données mais c'est fait implicitement dans ce langage, d'où la possibilité de ne pas faire de cast comme par exemple dans les malloc, une fois que tu aura programmé quelques années avec, ca te semblera moins bizzardEnvoyé par jerem2000
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
La conversion implicite de void* en un autre type de pointeur continue a me sembler bizarre.Envoyé par Franck.H
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Pour la raison que j'ai donnée, je pense qu'elle est préférable à la nécessité d'une conversion explicite.
Ce problème est résolu en C++ par les différents opérateurs de transtypage.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
C'est une conversion implicite qui n'est pas garantie de donner un resultat sense.Envoyé par Trap D
Il y en a d'autres qui sont problématiques parce qu'elles perdent une partie de l'information présente (genre float->int) mais au moins elles ont toujours un résultat bien défini.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
C'est quoi la raison que tu as donnée? NULL défini a (void*)0? Le permettre n'offre aucun avantage, ce n'est pas garanti.Envoyé par Médinoc
Je ne vois pas le rapport avec la définition de NULL. A moins que tu faisais allusion a autre chose?Ce problème est résolu en C++ par les différents opérateurs de transtypage.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Ce n'est pas à propos de NULL :
D'ailleurs, en C ou il n'existe qu'un seul opérateur de transtypage, la conversion implicite de void* est un bon moyen d'éviter les risques de perdre de la const-correctness en convertissant un pointeur...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Je ne comprends pas ce que tu veux dire.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Oui, mais il faut partir du principe qu'en C on n'a pas de garde-fou, le programmeur est sensé savoir ce qu'il fait. J'ai l'impression que tu raisonnes avec l'optique C++ où je pense, (je n'y connais rien en C++) qu'on est plus guidé et surveillé.Envoyé par Jean-Marc.Bourguet
"La haine seule fait des choix" - Koan Zen
"Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
"Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
Faites du Prolog, ça vous changera les idées !
Ma page Prolog
Mes codes sources commentés
Mon avatar : La Madeleine à la veilleuse de Georges de La Tour
oui en attendant ce procedé on ne le voi qu'en c et qui n'a pas été repri en c++ donc voila il y a surement une raison enfin je suppose
Rien ne se perd, rien ne se crée, tout se transforme
------- -------
Il ne faut pas réécrire l'histoire. void* provient du C++, a été repris en C où on a ajouté la conversion implicite vers les autres pointeurs (contre l'avis de D. Ritchie d'ailleurs si je ne me trompe pas).Envoyé par jerem2000
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager