begin process at 2012 05 28 21:00:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

encore un prob à la con!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

encore un prob à la con!

jeudi 1 septembre 2005 à 12:40:15 | encore un prob à la con!

bako25

salut,
je declare un pointeur : char *p;
 ensuite je lui affecte la valeur de la fonction malloc: p=malloc(400);
il m'affiche un message d'erreur : invalid conversion from'void* to 'char*', c'est du à quoi?
c'est encore une connerie de dev-c++???


jeudi 1 septembre 2005 à 12:48:11 | Re : encore un prob à la con!

julienbj


Fais un cast sur ton pointeur.
p = (char *) malloc(400 * sizeof(char));

Vive le C
Tchao
Savon
jeudi 1 septembre 2005 à 13:24:26 | Re : encore un prob à la con!

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
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];
jeudi 1 septembre 2005 à 18:19:51 | Re : encore un prob à la con!

steve_clamage

+1
Et pas la peine de multiplier par "sizeof(char)", ca vaut toujours 1.
jeudi 1 septembre 2005 à 18:41:59 | Re : encore un prob à la con!

julienbj

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
Savon
jeudi 1 septembre 2005 à 18:56:40 | Re : encore un prob à la con!

steve_clamage

"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.
jeudi 1 septembre 2005 à 22:27:45 | Re : encore un prob à la con!

dark_naruto25

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 ?
jeudi 1 septembre 2005 à 22:33:28 | Re : encore un prob à la con!

vecchio56

Administrateur CodeS-SourceS
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


Cette discussion est classée dans : char, con, malloc


Répondre à ce message

Sujets en rapport avec ce message

pb malloc [ par youpiyoyo ] d'apres msdn char *string; /* Allocate space for a path name */ string = malloc( _MAX_PATH );deja ca chez moi ca compil pas me compilo me di impos Probleme malloc [ par zzzzzz ] <img src=/imgs2 petite question concernant malloc et free... [ par kod32 ] Salut,je me pose une question depuis un petit moment et je pense que vous avez la réponse...Quand on alloue quelques octets via malloc, si on évite l' pionteur [ par lilington ] Salut j'ai un petit problème avec l'allocation dinamique sur VC++ 6je cherche la correspondance entre "malloc" et "new"voilà la l'allocation que je ve malloc (ms vc++) [ par DeadlyPredator ] Bonjour,J'ai une fonction:char*  _fastcall strLeft(const char* lpszString, const long nLength) { char* lpszBuffer; lpszBuffer=(char*)malloc(nLength+1) Malloc et mémoire affectée [ par Chop_chop ] Bonjour,J'ai un petit soucis quant à l'allocation de mémoire pour un char* avec l'utilisation de malloc.Voici mon code (bien allégé) :[CODE] char *fic probleme malloc !! [ par Vinsininounet ] Bonjour a tous,J'ai un probleme TRES bizzarre :quand je fait :char* pointeur;pointeur = malloc(sizeof(char)*1000);sa me met :invalide conversion de vo aide sur malloc [ par miki42 ] bonjour a tous je debute et j'ai du mal avec un bout de code trouver sur le net j'aurai aimer une petite explication si possible: [CODE] char *pbu Suppression de caractères d'un gros fichier texte [ par mslider ] --Bonjour, c'est juste pour une petite aide. J'ai utilisé un code qui avait été mis au point à l'origine pour faire du cross-table(tableau croisé, vo explication de plantage malloc strcpy char [ par ar1du62 ] Bonjour, Voila j'ai un petit problème mon programme se ferme lorsque je fais ça: char fichierRecup = NULL; fichierRecup = (char*) malloc (150* size


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales