STRUCTURE ETUDIANT

cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009 - 30 nov. 2008 à 19:08
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 2 déc. 2008 à 08:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48586-structure-etudiant

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 déc. 2008 à 08:52
coucou++
Dans toute autre discipline, on trouve normal de s'instruire devant un bouquin qui à tout coup ne sera pas écrit par un débutant.
En info, un débutant devrait apprendre les erreurs d'un autre débutant, c'est unr complète ineptie.
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
1 déc. 2008 à 20:13
Salut,
C'est vrai coucou747 aucun risque. Un autre problème: il y'a plusieurs malloc() mais pas un seul free().
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 déc. 2008 à 10:39
qu'il le soumette pour s'ameliorer, ok. mais dire que c'est utile aux debutants, c'est exagere...

ta remarque sur les pointeurs tiendrait si c'etait un pointeur vers la pile (return &variable_locale;) ici, c'est un return truc_sur_le_tas, donc c'est sans risque.
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
1 déc. 2008 à 08:36
Salut,
Pour ma part je pense que de publier son code est une bonne chose. Ca permet de le soumettre à un avis plus global et d'en retirer le meilleure.

Une chose qui me "choque" dans ton code concerne l'utilisation des pointeurs.

Exemple :
Etudiant * init_etudiant()
{
Etudiant * e = ....;
[...]

return e;
}

Ta fonction retourne un pointeur qui a été instancié et intialisé dans cette même fonction... Tu ne dois pas faire ca, car ton pointeur est declaré dans ta fonction et de ce fait il n'est valide que dans cette fonction. Tu n'es donc pas sure à 100% du retour de ta fonction.

Pour corriger ce problème, il vaut mieux passer passer un paramètre de sortie à ta fonction... Exemple :

Etudiant * init_saisie(Etudiant * e)
{
if(e != NULL)
{
e->age = 10; // ici tu implémentes ton code
}

return e;
}

=> Dans ce cas précis le retour se fait sur le paramètre de sortie donc aucun soucis pour la suite. Tu peux te servir soit du retour de la fonction soit du paramètre.

Bon courage et n'hésites pas à corriger ton code histoire qu'on t'aide à t'améliroer si tu le désires.

Shell
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 déc. 2008 à 00:50
salut

najnoujj, je doute qu'un code plein d'erreurs puisse aider un etudiant qui debute en Cpp...

ton code est un melange de C et de Cpp, c'est loin d'etre propre.
najnoujj Messages postés 8 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 5 novembre 2011
30 nov. 2008 à 22:33
Merci pour votre commentaire, justement ce code est destiné au étudiant qui débute le c++, bon courage à toi aussi.
cs_omnia Messages postés 240 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 22 mars 2009
30 nov. 2008 à 19:08
Bonjour,

sans être méchant, la publication de ce code n'apporte pas grand choses.
c'est en général les TP que l'on fait lorsque l'on commence la dev, ce genre de sources sont déjà très répandus.

bon codage.
Rejoignez-nous