Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1057 connectés 

  FORUM HardWare.fr
  Programmation
  C

  erreur à la compilation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

erreur à la compilation

n°1246820
mac08
Posté le 16-11-2005 à 15:24:39  profilanswer
 

Bonjour,
voila je sais plus trop si c'est du C ou du C++ car en cours on passe souvent de l'un a l'autre.
voila j'ai realisé un tableau dynamique. lors de la compilation(je travail sous linux et je compile dans la console) j'ai ce genre d'erreur et j'arrive pas a savoir d'ou elle vient.
collect2: ld terminé par le signal 11 [Erreur de segmentation]
Quelqu'un peux m'aider???? :??:

mood
Publicité
Posté le 16-11-2005 à 15:24:39  profilanswer
 

n°1246822
Taz
bisounours-codeur
Posté le 16-11-2005 à 15:26:24  profilanswer
 

montre ton code mais a priori c'est un bug de ton ld, donc faut mettre à jour si tu peux.

n°1246837
mac08
Posté le 16-11-2005 à 15:41:33  profilanswer
 

Code :
  1. #include<cstdlib>
  2. #include<cstdio>
  3. #include<iostream>
  4. #include"tab.h"
  5. #define Elem int
  6. TableauDynamique::TableauDynamique()
  7. {
  8. this->tailleReelle=0;
  9. this->tailleUtilisee=0;
  10. this->donnees=NULL;
  11. }
  12. TableauDynamique::TableauDynamique(int n)
  13. {
  14. this->tailleReelle=n;
  15. this->tailleUtilisee=0;
  16. this->donnees=new Elem[n];
  17. }
  18. TableauDynamique::TableauDynamique(TableauDynamique &td)
  19. {
  20.   this->tailleReelle=td.tailleReelle;
  21.   this->tailleUtilisee=td.tailleUtilisee;
  22.   this->donnees=new int[this->tailleReelle];
  23.   int i=0;
  24.   while(i<this->tailleUtilisee)
  25.     this->donnees[i]=td.donnees[i];
  26. }
  27. TableauDynamique::~TableauDynamique()
  28. {
  29.   delete this->donnees;
  30. }
  31. TableauDynamique & TableauDynamique::operator = (const TableauDynamique &td)
  32. {
  33.   this->tailleReelle=td.tailleReelle;
  34.   this->tailleUtilisee=td.tailleUtilisee;
  35.   delete this->donnees;
  36.   this->donnees=td.donnees;
  37.   return (*this);
  38. }
  39. int tailleUtilisee(const TableauDynamique &td)
  40. {
  41.   return(td.tailleUtilisee);
  42. }
  43. void ajoutElement(TableauDynamique &td,const Elem &e)
  44. {
  45.   if(td.tailleUtilisee<td.tailleReelle)
  46.     {
  47.       td.donnees[td.tailleUtilisee]=e;
  48.       td.tailleUtilisee++;
  49.     }
  50.   else
  51.     {
  52.       int*temp=new int[td.tailleUtilisee+1];
  53.       int i=0;
  54.       while(i<td.tailleUtilisee)
  55. {
  56.   temp[i]=td.donnees[i];
  57.   i++;
  58. }
  59.       temp[i]=e;
  60.       delete td.donnees;
  61.       td.donnees=temp;
  62.       td.tailleReelle++;
  63.       td.tailleUtilisee++;
  64.     }
  65. }
  66. void insereElement(TableauDynamique &td, const Elem &e, int i)
  67. {
  68.   ajoutElement(td,e);
  69.   int j=td.tailleUtilisee-1;
  70.   if (i<0)
  71.     {
  72.       printf("Erreur : position négative, l'élément n'a pas été inséré.\n" );
  73.     }
  74.   else
  75.     {
  76.       while(j>i)
  77. {
  78.   td.donnees[j]=td.donnees[j-1];
  79.   j--;
  80. }
  81.       if(i>td.tailleUtilisee)
  82. {
  83.   printf("Dépassement de capacité, l'élément sera inséré en fin." );
  84. }
  85.       else
  86. td.donnees[i]=e;
  87.     }
  88. }
  89. void afficher(TableauDynamique &td)
  90. {
  91. int i=0;
  92. while(i<td.tailleUtilisee)
  93.    printf("%d ", td.donnees[i]);
  94. printf("\n" );
  95. }


Code :
  1. int main()
  2. {
  3.   Elem e=3;
  4.   int i=1;
  5.   TableauDynamique td;
  6.   afficher(td);
  7.   ajoutElement(td,e);
  8.   insereElement(td,e,i);
  9.   afficher(td);
  10.   e=12;
  11.   i=4;
  12.   ajoutElement(td,e);
  13.   insereElement(td,e,i);
  14.   afficher(td);
  15.   e=15;
  16.   i=3;
  17.   ajoutElement(td,e);
  18.   insereElement(td,e,i);
  19.   afficher(td);
  20. }


Et le Header:

Code :
  1. #define Elem int
  2. struct TableauDynamique
  3. {
  4.   int tailleReelle;
  5.   int tailleUtilisee;
  6.   Elem *donnees;
  7.  
  8.  
  9.   TableauDynamique();
  10.   TableauDynamique(int n);
  11.   TableauDynamique(TableauDynamique &td);
  12.   ~TableauDynamique();
  13.   TableauDynamique& operator=(const TableauDynamique &td);
  14. };
  15. int tailleUtilisee(const TableauDynamique &td);
  16. void ajoutElement(TableauDynamique &td, const Elem &e);
  17. void insereElement(TableauDynamique &td,const Elem &e,int i);
  18. void afficher(TableauDynamique &td);

n°1246880
Trap D
Posté le 16-11-2005 à 16:14:43  profilanswer
 

Dès la première ligne on sait que c'est du C++
#include <cstdlib> (pas de .h)

n°1246894
mac08
Posté le 16-11-2005 à 16:28:35  profilanswer
 

Comment ca pas de .h j'en ai bien un associé au .c. Celui qui contient la structure!!!!

n°1246913
Elmoricq
Modérateur
Posté le 16-11-2005 à 16:41:50  profilanswer
 

Ce qu'a voulu dire Trap D, c'est qu'en C on aurait écrit :

#include <stdlib.h>


 
Alors qu'en C++, on écrit :

#include <cstdlib>


(on ne précise plus le ".h", et le "c" en préfixe indique qu'il s'agit d'un header C et non C++, au contraire d'iostream par exemple)

n°1248582
mac08
Posté le 18-11-2005 à 16:34:41  profilanswer
 

Je ne peux pas mettre a jour mon ld suis pas admin à la fac!

n°1248584
Elmoricq
Modérateur
Posté le 18-11-2005 à 16:36:06  profilanswer
 

J'ai déjà eu des erreurs du genre avec ld, c'est peut-être un bug dans le sens où comme message d'erreur, on a clairement vu mieux, mais ça doit se résoudre sans toucher au programme.
 
Je ne me souviens plus comment j'ai eu ce problème, sans doute un paramètre de compilation incorrect, genre une lib manquante ou un truc dans ce goût-là.

n°1248654
slash33
Posté le 18-11-2005 à 18:03:45  profilanswer
 

Soit dit en passant ce genre de chose "this->donnees=new Elem[n];" avec n pouvant être négatif est source de problème à l'exécution

n°1248660
mac08
Posté le 18-11-2005 à 18:16:43  profilanswer
 

Tout a fait d'accord avec toi slash33 j'ai oubliée de le remettre mais bon ca regle pas le probleme


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  erreur à la compilation

 

Sujets relatifs
erreur de compilation en c++(Devcpp):no such file or directoryerreur de compilation sous access 97
[VS2005][C#] Erreur à la compilation: namespace non trouvéerreur a la compilation comprend pas ??
JOptionPane --> erreur à la compilation[glut] erreur à la compilation
erreur de compilationerreur compilation gcc parse error at the end of input
[GTK & C++] compilation de classe avec erreurErreur compilation (besoin d'aide)
Plus de sujets relatifs à : erreur à la compilation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR