Bonjour,
Je cherche à initialiser un tableau de caractères (contenu dans une classe) de façon dynamique.
J'ai donc écris le code suivant :
class Coord
{
public :
char *m_Nom;
//autres données...
};
int main(int argc, char *argv[])
{
char *pConteneur = new char[100];
cout<<"Entrez votre nom :"<<endl;
gets(pConteneur);
longueur = strlen(pConteneur);
Coord personne;
personne.m_Nom = new char[longueur + 1]; //allocation de mémoire
for(int i = 0; i < longueur; i++) //initialisation
{
personne.m_Nom[i] = *(pConteneur + i);
}
cout<<personne.m_Nom<<endl;
delete [] pConteneur; //désallocation
delete [] personne.m_Nom;
system("PAUSE");
return 0;
}
Le code fonctionne, toutefois ne l'ayant pas testé dans toutes les contextes possibles je voudrais savoir :
1) si l'allocation et la désallocation de mémoire du membre m_Nom sont correctes ?
2) si l'initialisation de ce membre est correcte ?
3) Est il possible d'utiliser ce code sans risquer un plantage (à cause des nombreux pointeurs) ou d'autres problèmes plus subtiles.
Merci
Tintin 72