[C] comment faire un goto lbl??

cref -  
 pounch -
comment aire un goto lbl (comme les caltoche)en langage c??

merci

8 réponses

  1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Faut pas faire de goto, c'est mauvais pour la santé.

    Si besoin de GOTO se fait sentir, il y a 99,99% de chances qu'il ne soit en réalité pas nécessaire (c'est juste un problème d'algo).
    1
  2. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Je fais pas.

    Pourquoi vouloir faire un GOTO ?
    0
  3. cref
     
    pout toujour tourner dans le programme
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Pour boucle, il y a while, for, etc.

    Je te recommande:
    http://www.commentcamarche.net/ccmdoc/index.php3?cat=93
    http://www.commentcamarche.net/ccmdoc/index.php3?cat=78
    0
    1. philtrain
       
      Supprimer un message sur ce sujet, c'est un abus de position dominante de ta part, d'autant que c'est un sujet ouvert
      = CENSURE
      0
      1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684 > philtrain
         
        ouais ouais... bon.
        Mais bon indiquer à un débutant comment faire des GOTO...
        0
      2. philtrain > philtrain
         
        BOF,

        C'est comme interdire à un enfant d'utiliser un couteau, parce qu'il pourrait se couper, ou assassiner son voisin!
        Nous sommes entourés d'ustensiles et d'engins qui, mal utilisés, sont dangereux mais qui, dans des conditions normales d'utilisation, sont inoffensifs : couteaux, ciseaux, prises électriques, etc.
        L'utilisation du goto n'est pas recommandée, mais cette possibilité existe (et pas seulement en C) et permet parfois de s'en sortir dans des cas complexes.

        ps: (débutant != nigaud).
        0
  6. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    si tu faisais de l'assembleur tu devrais faire une boucle avec une etiquette. en c tu dois utiliser la fonction while()
    0
  7. pounch
     
    Bonjour,

    Tout d'abord je tiens à signaler que je suis tout a fait d'accord avec ces messieurs sur le fait que pour faire boucler indefiniment un programme un for(;;) est bcp plus propre qu'un goto.
    Par contre j'ai un dilem.
    Actuellement j'utilise des fonctions qui me retourne classiquement 0 ou NULL et tout autre chose si vrai. Ces fonctions je les appelle dans un sous programme à moa et j'alloue toute sorte de pointeur à l'interieur et actuellement je n'ai rien trouvé de mieux que:

    foo()
    {
    DWORD cbToto = 0;
    BYTE *pbToto = NULL;
    // toto si 1er param NULL, cbToto contient la taille à allouer
    if (!toto(NULL, &cbToto)) goto end;
    pbToto = (BYTE *)malloc(cbToto);
    if (!toto(pbToto, &cbToto)) goto end;

    // ici plein d'autre appelles de la sorte

    end:
    if (pbToto != NULL) { free(pbToto); pbToto = NULL; }
    // ici liberation de toutes les allocs
    }

    Je ne vois pas comment faire plus lisible est plus simple que ca.
    Si vous avez une idée ...

    Pounch.
    0