• STATISTIQUES
  • Il y a eu un total de 0 membres et 41697 visiteurs sur le site dans les dernières 24h pour un total de 41 697 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [EN] Packet Storm
    Packet Storm est un site qui combine nouvelles de la sécurité informatique, téléchargemen...
    Vulnérabilités
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [EN] hax.tor
    50 level de challenges mélangés
    Challenges
    [EN] CS Tutoring Center
    Site de challenge spécialisé dans les challenges de programmation C++ et java cependant, d'autres langages pe...
    Challenges
    [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[C] SegFault > 6
06-01-2013, 22h15 (Modification du message : 06-01-2013, 22h24 par Sh4dows.)
Message : #6
Sh4dows Hors ligne
Tweetos
*



Messages : 293
Sujets : 5
Points: 49
Inscription : Dec 2012
RE: [C] SegFault > 6
J'ai mis pas mal de temps, mais tous fonctionne Smile Merci à @Ark, j'ai appris pas mal d'astuces avec GDB.
C'était bien la fonction take_b() au dernier while qui produisait l'Erreur de Segmentation !!

Code C :

void    take_b(struct s_data *vars)
{
  int   i;
  int   *tmp_b;

  if (vars->size_a >= 1)
    {
      tmp_b = backup(vars->tab_b, vars->size_b);
      vars->size_b += 1;
      free(vars->tab_b);
      vars->tab_b = malloc(sizeof(int) * vars->size_b);
      i = 1;
      vars->tab_b[0] = vars->tab_a[0];
      if (vars->size_b > 1)
    {
      while (i < vars->size_b)
        {
          vars->tab_b[i] = tmp_b[i - 1];
          i += 1;
        }
    }
      free(tmp_b);
      take_b_ext(vars);
    }
}

void    take_b_ext(struct s_data *vars)
{
  int   i;
  int   *tmp_a;

  tmp_a = backup(vars->tab_a, vars->size_a);
  free(vars->tab_a);
  vars->tab_a = malloc(sizeof(int) * vars->size_a);
  i = 0;
  while (i + 1 < vars->size_a)
    {
      vars->tab_a[i] = tmp_a[i + 1];
      i += 1;
    }
  vars->size_a -= 1;
  free(tmp_a);
}
 


PS : Pensez à checker les mallocs Smile
Faites ce que je dis et non ce que je fais !
+1 (1) -1 (0) Répondre


Messages dans ce sujet
[C] SegFault > 6 - par Sh4dows - 06-01-2013, 15h32
RE: [C] SegFault > 6 - par Ark - 06-01-2013, 15h38
RE: [C] SegFault > 6 - par Sh4dows - 06-01-2013, 15h43
RE: [C] SegFault > 6 - par Ark - 06-01-2013, 15h47
RE: [C] SegFault > 6 - par Sh4dows - 06-01-2013, 15h50
RE: [C] SegFault > 6 - par Sh4dows - 06-01-2013, 22h15

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut