Vilains copieurs ou fans de Stanley Kubrick...Envoyé par drcd
Dans 2001 l'odyssée de l'espace, l'ordinateur central s'appelle HAL, soit, si on prend les lettres suivantes...
Vilains copieurs ou fans de Stanley Kubrick...Envoyé par drcd
Dans 2001 l'odyssée de l'espace, l'ordinateur central s'appelle HAL, soit, si on prend les lettres suivantes...
C'est pas la première fois que nos amis de Redmond copie... et sans doute pas la dernière...Envoyé par Emmanuel Delahaye
J'ai comme l'impression qu'on a la réponseEnvoyé par Médinoc
![]()
"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
Je le connais pas le prototype exact de malloc j'ai pas trop cherché
mais je sais que le cast m'a permit de passer le meme code sur les 2 OS.
Bon c'est bon vous avez gagné faut pas mettre de cast meme si j'en mettrai moi meme toujours lol. Desole je suis tetu :p
Oui mon ecole est à la pointe du progres lool.
Non enfait (je suis dans une ecole d'ingé) le but d'une ecole d'ingé c'est de montrer des concepts pour que les futur ingé se debrouille tout seul. C'est pas de les former sur les derniers truc à la mode voila pourquoi on est sous vms.Mais on a windows linux et tout le bordel qu'on veut.
Dans 2001 l'odyssée de l'espace, l'ordinateur central s'appelle HAL, soit, si on prend les lettres suivantes...
HAL=>IBM
Et c'est comme un bete probleme de malloc peut deriver mdrrr
En fait, je pense que ton compilo pour VMS possède le bon prototype de malloc() (à savoir un void*) mais que tu compiles en C++ sous visual...
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.








Non, c'etait juste l'occasion de faire une blague ! J'ai travaille un peu sous VMS, et, a part le fait qu'il fait une difference entre fichiers textes et fichiers binaires (un defaut de conception dont Windows a herite) et que les commandes font quinze kilometres de long, je trouvais VMS assez agreable. Quant aux qualites de Windows, je ne sais pas, je n'ai jamais eu l'occasion de travailler sous Windows...Envoyé par Médinoc
Donc Kubrick a fait l'operation inverse, il a pris les lettres precedant IBM (qui a ete fonde en 1911, quand meme).Envoyé par Emmanuel Delahaye
Pour revenir au sujet, compiler en C ISO sous VMS est comme partout. Aucun besoin de cast explicite sur un void *. drcd doit certainement utiliser un compilateur C++.
Ouais j'utilise une visual.
Ben je savais pas que c'etait à cause de ca. Merci pour l'explication>.
Renomme ton fichier en .c, et il compilera sous Visual sans cast...
Et c'est valable pour tous les autres compilos/EDIs aussi (mais je me doutais que c'était visual car les nouveaux fichiers sont des .cpp par défaut...)
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.
Tiens un truc qui me passe par la tete. Pourquoi c'est mal un cast?
Tout dépend du contexte:Pourquoi c'est mal un cast?
pour "malloc" c'est juste inutile mais pas mal.
Par contre:
est artificiel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int tab[1][1]={{1}}; char** p=(char**)tab;
Sauf que ça peut masquer un oubli d'inclusion de stdlib.h (quand on a également oublié d'activer les warnings)Envoyé par seriousme
Et dangereux : L'unique entier du tableau (ici, 1) sera interprété comme un pointeur.est artificiel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int tab[1][1]={{1}}; char** p=(char**)tab;
Et je me permets d'ajouter que le cast de pointeurs peut entraîner une perte de const-correctness, alors qu'un pointeur void peut éviter ceci:
Si j'avais utilisé un cast, je n'aurais eu ni erreur, ni warning, j'aurais donc risqué d'écrire comme un idiot dans une zone mémoire non-modifiable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char const * str = "Blabla"; void const *pcv = str; int *pci = pcv; /*Erreur de compilation (ou au moins, un warning)*/
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 mal sauf quand c'est nécessaire, comme pour préciser le type des paramètres des fonctions variadics ou forcer une expression dans un type précis (float, double, par exemple). Ces cas existent et doivent être traités en conséquence, mais ils sont plutôt rares (et bien connus).Envoyé par drcd
Ouais mais pour le cas du malloc c'est juste inutile c'est ca?
Oui, comme ça a été expliqué en long en large et en travers...Envoyé par drcd
Bon, en ce qui me concerne mon problème est résolu, merci pour vos explications.
Partager