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 :

pointeur new delete


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut pointeur new delete
    Bonjour a tous,

    le code ci-dessous se compile sans probleme, par contre genere une errur de "segmentation fault" quand je l'excute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    int N=10000;
    float* A=new[N];
    for (int i=0; i<N;i++)
    {A[i]=1};
    finction_save_infile(A);
     
    delete [] A;
    Cette erreur disprait quand j'ajoute la ligne

    juste avant delete (en ligne 7)

    j'ai les questions suivantes:
    - pourquoi ca genere une erreur de segmentation ?
    - je ne comprends pas pourquoi ajoute cette ligne ca fait disparaitre l'erreur!
    - est que je dois faire confiance au resultat obtenu par ce programme ?

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float* A=new float [N];
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    oui j'ai fait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float* A=new float [N];
    mais l'erreur de segmentation persiste.

    J'ai essaye de re-excute le programme, maintenent meme avec A=NULL ca genere une erreur de segmentation a l'excution ?

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Je suppose que c'est une erreur de frappe :
    A part cela, le code est "correcte" (sauf que sans raison particulière, utilise plutôt un std::vector à la place d'un tableau comme tu fais). Le problème doit venir de ta fonction finction_save_infile

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 243
    Par défaut
    Ou bien le code que tu nous montres n'est pas celui qui plante.

  6. #6
    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
    Que fait finction_save_infile() ?

    Pourrais-tu fournir un code minimal mais compilable qui reproduit le problème ?

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par loisir1976 Voir le message
    Cette erreur disprait quand j'ajoute la ligne

    juste avant delete (en ligne 7)
    Ben déjà, l'affectation à NULL doit avoir lieu après la libération des ressources, dont après le delete.

Discussions similaires

  1. Pointeur et delete
    Par syn42 dans le forum SL & STL
    Réponses: 3
    Dernier message: 12/09/2007, 09h13
  2. Réponses: 3
    Dernier message: 04/12/2006, 15h19
  3. tableau de pointeurs et new, delete
    Par luckydigit dans le forum C++
    Réponses: 12
    Dernier message: 21/07/2006, 11h24
  4. [Débutant]Constructeur et new/delete
    Par Geolem dans le forum C++
    Réponses: 5
    Dernier message: 02/12/2005, 21h11
  5. Namespace et surcharge operator new/delete
    Par ZeLegolas dans le forum C++
    Réponses: 11
    Dernier message: 26/07/2005, 13h55

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