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
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
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.
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