Probleme d'allocation

Signaler
Messages postés
2
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
23 juin 2009
-
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
   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

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
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
Messages postés
2
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
23 juin 2009

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.
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
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