Vilains copieurs ou fans de Stanley Kubrick...Citation:
Envoyé par drcd
Dans 2001 l'odyssée de l'espace, l'ordinateur central s'appelle HAL, soit, si on prend les lettres suivantes...
Version imprimable
Vilains copieurs ou fans de Stanley Kubrick...Citation:
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...Citation:
Envoyé par Emmanuel Delahaye
J'ai comme l'impression qu'on a la réponse :mouarf:Citation:
Envoyé par Médinoc
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 :D
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...
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...Citation:
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).Citation:
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...)
Tiens un truc qui me passe par la tete. Pourquoi c'est mal un cast?
Tout dépend du contexte:Citation:
Pourquoi c'est mal un cast?
pour "malloc" c'est juste inutile mais pas mal.
Par contre:
est artificiel.Code:
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)Citation:
Envoyé par seriousme
Et dangereux : L'unique entier du tableau (ici, 1) sera interprété comme un pointeur.Citation:
est artificiel.Code:
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:
1
2
3 char const * str = "Blabla"; void const *pcv = str; int *pci = pcv; /*Erreur de compilation (ou au moins, un warning)*/
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).Citation:
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...Citation:
Envoyé par drcd
Bon, en ce qui me concerne mon problème est résolu, merci pour vos explications.