A cessé de fonctionner

Pas de problème dans la compilation, mais en exécution me fait a cessé de fonctionner.
#include <cstdlib>
#include <iostream>

using namespace std;

class Client
{
      private: // variable de classe 
              static int cmpt;
              int CNI;
              int CODE;
              char *NOM;
              char *PRENOM;
              int SOLDE;
              
      public:
              Client(int cni,char *nom,char *prenom,int solde);// constructeur 1
              //Client(int cni=0,int solde=0);
              void Afficher();
              };
    //-------------------------------------------------------------
    int Client::cmpt=0; // insitialiser la variable cmp de classe
    //-------------------------------------------------------------
    //----------------------Les constructeurs----------------------
    Client::Client(int cni,char *nom,char *prenom,int solde)
    {
                   cmpt++;
                   CODE=cmpt;
                   CNI=cni;
                   strcpy(NOM,nom);
                   strcpy(PRENOM,prenom);
                   SOLDE=solde;    
                        }
    

void Client::Afficher ()
{
     cout<<"le code est :"<<CODE<<endl;
     cout<<"le CIN :"<<CNI<<endl;
     cout<<"Le nom :"<<NOM<<endl;
     cout<<"le prenom :"<<PRENOM<<endl;
     cout<<"le solde :"<<SOLDE<<endl;
     }

int main(int argc, char *argv[])
{
    Client cl(10,"tralala","larbi",100);
    cl.Afficher();
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

1 réponse

  1. Salut,

    C'est normal tu as un SEGFAULT. Tes pointeurs NOM et PRENOM ont la valeur NULL et tu tentes de leur affecter une valeur sans leur allouer de l'espace mémoire, un petit malloc et c'est réglé ;)
    0
    1. oui mais comment user malloc avec les strcpy ?
      0
    2. Tout simplement comme ceci, au lieu de :

      strcpy(NOM,nom);
      strcpy(PRENOM,prenom);
      


      Mettre ceci :

      NOM = (char *)malloc(sizeof(nom));
      PRENOM = (char *)malloc(sizeof(prenom));
      strcpy(NOM, nom);
      strcpy(PRENOM, prenom);
      


      ;)
      0