vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 1 sept. 2005 à 13:24
On ne devrait jamais voir de cast devant un malloc, car si on utilise malloc c'est qu'on programme en C (pas en C++), et en C ce cast est implicite.
Tu dis donc à Dev-C++ que ton projet est en C et non en C++
Si tu veux programmer en C++, tu utilises new:
p = new char[400];
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 1 sept. 2005 à 18:41
Pour le sizeof, question d'habitude.
Pour le cast, je suis d'accord. Ne programmant jamais en C++, j'ai tendance à faire des cast sur mes mallocs pour prévoir mes oublis de changement de mode de compilo.
Par contre, une petite question: qu'est ce que cela change de faire un cast devant le malloc? Cela induit-il un temps d'execution plus long ou quelquechose du genre? Ou est ce seulement inutile?
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
Vous n’avez pas trouvé la réponse que vous recherchez ?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 1 sept. 2005 à 18:56
"Cela induit-il un temps d'execution plus long ou quelquechose du genre?"
Je ne penses pas que cela induise un temps d'execution plus long, en
tout logique un cast de pointeur à pointeur n'implique pas de
conversion. Dans le cas d'une expression sans arithmetique ca ne change
rien à priori.
"Ou est ce seulement inutile?"
Ca oui, et comme les cast sont souvent la cause de bug on aime les
éviter, donc surtout pas de cast quand ce n'est pas nécéssaire.
dark_naruto25
Messages postés127Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention 9 mai 2011 1 sept. 2005 à 22:27
Je pensais que les convertions de ce genre n'intervenait pas dans l'executable... En fait c'est juste le compilo qui en a besoin pour ne pas qu'on fasse d'erreur non ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 1 sept. 2005 à 22:33
Bien sur, c'est du au fait que le langage est assez fortement typé
Ca doit permettre d'éviter certaines erreurs
Quand tu programmes en assembleur, aucun contrôle de type n'est fait, donc tu peux écrire n'importe quoi sans même t'en rendre compte