Rechercher : dans
Par :

[C++] erreur du au delete[]

Dernière réponse le 16 sep 2005 à 14:57:05 Char Snipeur, le 15 sep 2005 à 17:37:55 
 Signaler ce message aux modérateurs

Bonjour,
dans mon programme, j'utilise une variable allouer dynamiquement. le problème viens du fait que le prog plante au niveau de la destruction de cette variable. Je n'ai pas l'habitude d'utilise l'allocation dynmique alors vous pourrez me dire d'où viens le pb.

int main()
    {
      double *tc;
      tc=new double[taille];
      /* modification diverse et varier de tc*/
      printf("avant delete');
      delete[] tc;
      printf("apres delete[]");
     return 0;
}


Au final, le programme tourne bien, m'affiche avant et fait une erreur de segmentation...
Merci de votre aide. Salutation !
Char Snipeur

Meilleures réponses pour « [C++] erreur du au delete[] » dans :
[Langage C] C/C++ Erreur de segmentation Voir Qu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
La compilation et les modules en C et en C++ Voir Cet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Codes d'erreur de Windows VoirLa liste ci-dessous détaille les codes d'erreur s'affichant dans les boîtes de dialogue sous Windows : Code Description ------------------------ 1 Fonction incorrecte. 2 Le fichier spécifié est introuvable. 3 Le chemin d'accès spécifié...
Gestion des erreurs et exceptions VoirGestion des erreurs et exceptions Les lignes de code que vous avez étudiées jusqu’à présent ne constituaient pas de vrais programmes mais des exemples. Elles ne comprenaient donc aucun traitement des erreurs. Les programmes que vous développerez...

1

crabs, le 15 sep 2005 à 17:56:37

Salut
Quelle version de compilateur, Système d'exploitation ?
Est-ce que la variable taille est bien affectée ?
Sous Linux (slackware 10.1) avec gcc 3.3.4, libc 2.3.4 et noyau 2.4.29
pas de bug...
A+, crabs ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

2

Char Snipeur, le 15 sep 2005 à 18:14:35

Gcc 3.2 sur XP.
Il n'y a pas de problème avec taille, elle ser à dimensionner des vectors qui sont tout à fait correct. Mais je vais quand même chercher de ce coté la.
merci. Salutation !
Char Snipeur

Répondre à Char Snipeur

3

Nashouille, le 16 sep 2005 à 10:14:00

En général un seg fault sur un delete signifie que tu essaies de désallouer une variable déjà désalouée.
Dans tes modification du tc tu es sur de na pas la supprimer en essyant de supprimer une copie par exemple?

Répondre à Nashouille

4

Char Snipeur, le 16 sep 2005 à 12:28:35

Merci pour la réponse, je vais chercher de ce coté. Mais je n'ai rien vu de tel qu'une destruction de copie. Dans les modif de tc, je fait surtout tc[i]
La destruction de tc pourrai elle avoir lieu dans une fonction?
Sinon, j'ai résolu le problème en rajoutant la ligne suivante devant le delete :

tc=0;(ou tc=NULL)

quand je fait le delete ensuite il n'y a plus de plantage.
En revanche il semble qu'il y ai une fuite de mémoire. Salutation !
Char Snipeur

Répondre à Char Snipeur

5

 Char Snipeur, le 16 sep 2005 à 14:57:05

Juste pour préciser. En fait l'ajoue de cette ligne ne résoud pas completement le problème : le programme après quelques boucles, mais son plantage n'est pas signaler par Windows. Salutation !
Char Snipeur

Répondre à Char Snipeur