calloc pb

calloc pb - C++ - Programmation

Marsh Posté le 22-09-2003 à 11:15:19    

Comment faire pour quand je tape a l'exec qu'il m'alloue pour 2 etudiant apres avoir encoder le 1er il passe au 2eme...
 
 
 
 
 
#include <ctype.h>
#include <stdio.h>
#include <string>
#include <cstdlib>
#include <iostream>
using namespace std;
 
struct etud  
{
 char *nom;
 int nbCotes;
 int *pCote;
};
 
typedef struct etud Etud;
typedef struct etud *p_Etud;
 
void main(void)
{
int n,i;
char *nom1;
Etud *etudiant;
 
 
cout << "Combien d'etudiant voulez vous ?"<< endl;;
cin >> n;
 
etudiant=(Etud *)calloc(n,sizeof(Etud));
 
if (etudiant == NULL) cout << "Erreur allocation mémoire...\n";
 
 
for (i=0;i<n;i++)
{
cout << "Entrer le nom de l'etudiant : " << i << endl;
cin >> *etudiant->nom;
}
free(etudiant);
 
}
 

Reply

Marsh Posté le 22-09-2003 à 11:15:19   

Reply

Marsh Posté le 22-09-2003 à 11:17:17    

remplace les char * par des std::string
 

Code :
  1. for (i=0;i<n;i++)
  2. {
  3. cout << "Entrer le nom de l'etudiant : " << i << endl;
  4. cin >> etudiant[i].nom;
  5. }


 
 
cela dit ton code est vraiment ignoble, c'est du C avec des cout


Message édité par chrisbk le 22-09-2003 à 11:18:04
Reply

Marsh Posté le 22-09-2003 à 11:19:26    

chrisbk a écrit :

remplace les char * par des std::string
 

Code :
  1. for (i=0;i<n;i++)
  2. {
  3. cout << "Entrer le nom de l'etudiant : " << i << endl;
  4. cin >> etudiant[i].nom;
  5. }


 
 
cela dit ton code est vraiment ignoble, c'est du C avec des cout
 


 [:benou_+1]  
 
Et t'as tjrs pas apris à utiliser les balises de code depuis le temps?


---------------
Le Tyran
Reply

Marsh Posté le 22-09-2003 à 11:21:52    

C'est quoi les balises de code??  
 
 
  for (i=0;i<n;i++)  
  {  
    cout << "Entrer le nom de l'etudiant : " << i << endl;  
    cin >> etudiant[i].nom;  
  }  
 
 
ne fonctionne pas, croix rouge sur fond blanc :bounce:  
 
 
J'avais déjà essayé cette facon.
Bref mon code es ptetre pourri mais je le modif apres

Reply

Marsh Posté le 22-09-2003 à 11:24:26    

zouzouille a écrit :

C'est quoi les balises de code??  
 
 
  for (i=0;i<n;i++)  
  {  
    cout << "Entrer le nom de l'etudiant : " << i << endl;  
    cin >> etudiant[i].nom;  
  }  
 
 
ne fonctionne pas, croix rouge sur fond blanc :bounce:  
 
 
J'avais déjà essayé cette facon.
Bref mon code es ptetre pourri mais je le modif apres


 
C quand même pas compliquer de cliquer sur ce putain de bouton c/c++!


---------------
Le Tyran
Reply

Marsh Posté le 22-09-2003 à 11:30:03    

zouzouille a écrit :

C'est quoi les balises de code??  


c'est le bouton C/C++ qui apparait dans la barre d'outils du formulaire d'envoi de message, ça te permet de formater ton code et de faire un semblant de coloration syntaxique, plus facile à lire


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-09-2003 à 11:35:44    

zouzouille a écrit :


ne fonctionne pas, croix rouge sur fond blanc :bounce:  
 
 
J'avais déjà essayé cette facon.
Bref mon code es ptetre pourri mais je le modif apres


ton code est pourri, et tu le modifies maintenant !
- utiliser les entetes du C++ (virer les .h)
- utiliser std::string au lieu de char *
- utiliser new au lieu de calloc
- utiliser delete au lieu de free
- etc...
 
ne cherche pas à corriger ce code, refais le entièrement


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-09-2003 à 12:01:53    

Harkonnen a écrit :


ne cherche pas à corriger ce code, refais le entièrement


 
clair
balance tout a la poubelle et recommence *propre*  

Reply

Marsh Posté le 22-09-2003 à 12:58:27    

et prie pour que TAZ zap ce topic :)

Reply

Marsh Posté le 22-09-2003 à 13:05:07    

Harkonnen a écrit :


ton code est pourri, et tu le modifies maintenant !
- utiliser les entetes du C++ (virer les .h)
- utiliser std::string au lieu de char *
- utiliser new au lieu de calloc
- utiliser delete au lieu de free
- etc...
 
ne cherche pas à corriger ce code, refais le entièrement

tu t'es fais un post-it ou quoi ?  [:taz]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed