Probleme d'allocation

littledrummer Messages postés 2 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 23 juin 2009 - 23 juin 2009 à 14:40
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 23 juin 2009 à 15:38
   bonjour à tous.
J'ai un petit souci avec une allocation mémoire lorsque j'execute le code suivant:
string nomfichier=

"";cin>>nomfichier;

size_t taillenom = nomfichier.size();

char *nomfichierchar;nomfichierchar = (

char*)malloc(taillenom*
sizeof(
char));

for(
int vnom=0; vnom<taillenom;vnom++)nomfichierchar[vnom]=nomfichier[vnom];

Le résutat est un message dans le debugg qui dit : 0xcccccccc   à la ligne char* nomfichierchar.
quelqu'un sait d'où ça peut venir????
Le probleme rest le meme avec 'new'
merci d'avance

3 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
23 juin 2009 à 15:02
Salut
Je ne vois pas de problème lors de l'allocation. Il faut cependant vérifier que taillenom soit bien différent de 0.
Et il faut aussi vérifier le retour de malloc. Si l'allocation échoue, nomfichierchar sera égale à 0.
A+

____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
littledrummer Messages postés 2 Date d'inscription jeudi 15 novembre 2007 Statut Membre Dernière intervention 23 juin 2009
23 juin 2009 à 15:14
lors de l'allocatio mémoire exemple si taillenom vaut 10 il crée un tableau de 24 char.
le malloc s'execute mais pas correctement, je pense que sa vien du pointer nomfichierchar mais je ne vois pas ou.
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
23 juin 2009 à 15:38
Comme sizeof(char) = 1, si tu fais  :  malloc(10); Tu auras forcement alloué 10 octects.






Maintenant si tu essaies d'accéder tab[15], ton programme ne plantera pas forcement mais tu accèdes une zone mémoire interdite.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
Rejoignez-nous