IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[Debutant]Probleme avec un realloc


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Plusieurs remarques en vrac sur ton code :

    * void main(void) n'est pas une forme correcte du main c'est int main(void) avec le retour qui va bien.
    * Le retour du malloc dans le main n'est pas tester. De plus le cast de la valeur de retour du malloc n'est pas utile. Je te conseille de mettre sizeof(*tab_auteur) plutot que sizeof(st_aut) ce qui permet de faciliter la maintenance si tu dois un jour changer le type de tab_auteur.
    * Tu as bien pense a utiliser deux pointeurs pour le realloc afin de gerer le cas ou celui-ci echoue. Toutefois malgre l'echec du reaaloc, tu vas ecrire un nouvel element pour lequel tu n'as pas la place.
    * Tes allocations ne sont jamais libere.
    * fflush() n'est defini que sur les flux sortant, le comportement de fflush(stdin) n'est donc pas defini et peut tres bien n'avoir aucun effet sur certains systemes.
    * Pourquoi limites-tu la taille de tes saisie via fgets a sizeof(strlen(saisie)) (qui correspond a la taille d'un size_t) et non a sizeof saisie (qui correspond a la taille de la chaine) ?
    * Attention : le buffer de saisie 'saisie' a une taille de 150 byte alors que l'element nom dans la structure n'a qu'une taille de 50 byte.
    * Dans le main, tu fais un scanf("%d",&choix); pour recuperer l'entree du menu. Le probleme c'est que tu ne consomme pas le \n de la validation et si tu rentres une lettre par exemple tu pars en boucle inifinie (a moins que sur ton systeme fflush(stdin) vide bien le buffer d'entree standard mais ce n'est pas portable et ne fonctionnera probablement le jour ou tu changeras de systeme).
    * windows.h n'est pas un header standard et est inutile dans ton exemple.
    * l'header necesssaire au fonction d'allocation memoire est stdlib.h, il est donc inutile d'inclure malloc.h (Je me demande meme si il est standard).
    * le case 2: dans ton main est inutile.
    * la variable i du main n'est pas utilise.

  2. #2
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Merci pour tes conseils.
    A priori mon problème est résolu, il s'agissait d'un problème de poiteur, erreur de syntaxe ( enfin plutot méconnaissance ) et peut etre quelques chose avec la liberation de la mémoire, les free non mit.

    J'ai demandé à mon prof, et il m'a résolut cà, en m'expliquant bien sur.

    En tout cas mer ci pour votre aide, et désolé d'avoir été un peu boulet avec mes post et surtout le post de code mal mit.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Debutant] Probleme avec BevelBorder
    Par devil26 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 09/05/2005, 09h41
  2. [debutant]probleme avec wxwidgets
    Par iwky dans le forum wxWidgets
    Réponses: 11
    Dernier message: 23/01/2005, 20h23
  3. [DEBUTANT] Probleme avec glortho
    Par barthelv dans le forum OpenGL
    Réponses: 12
    Dernier message: 23/11/2004, 14h21
  4. [DEBUTANT] probleme avec split ?
    Par matN59 dans le forum ASP
    Réponses: 6
    Dernier message: 23/10/2004, 15h47
  5. Réponses: 2
    Dernier message: 31/08/2004, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo