Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

 #1 - 09-02-2011 14:35:26

shadock
Elite de Prise2Tete
Enigmes résolues : 39
Messages : 3334

Programmme à ne pas faire

Quand Shadock s'ennuis en TPE :

Code:

#include <stdio.h>
#include <stdlib.h>

  int main()
{
    printf("Hello world!\n");
    int i=0;
    while(1)
    {
        printf(&i,"%d");
        i++;
    }
    return 0;
}

Et quand Shadock appui sur run, la console affiche plein de signes bizarres, même de smiley, si quelqu'un avait une petit explication merci; smile

PS : Ne pas essayer ce code, le seul moyen de s'en débarrasser, c'est d'éteindre l'ordinateur !


"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline
  • |
  • Répondre

#0 Pub

 #2 - 09-02-2011 14:45:42

L00ping007
Elite de Prise2Tete
Enigmes résolues : 49
Messages : 2010
Lieu: Paris

Prgramme à ne pas faire

J'avais un ancien collègue de promo qui avait un jour lancé sous UNIX un :
while (1)
{
   fork();
}

Il avait planté le serveur de l'école smile

Les boucles infinies, c'est sympa, mais c'est dangereux lol

 #3 - 09-02-2011 14:54:20

clementmarmet
Elite de Prise2Tete
Enigmes résolues : 34
Messages : 1329
Lieu: I'm in spaaaace!!

Programme à ne pas afire

pour les smileys, c'est normal: ils remplacent des caractères non-inscriptibles de l'ASCII: ☺☻♥♦♣♠•◘○
quand au programme, je ne saurais dire... hmm


eki eki eki pa tang!!

 #4 - 09-02-2011 15:02:00

FRiZMOUT
Verbicruciste binairien
Enigmes résolues : 49
Messages : 2218

peogramme à ne pas faire

&i correspond à un pointeur, essaie avec i tout court, ça devrait être mieux.
Et sans boucle infinie, c'est encore mieux.

 #5 - 09-02-2011 15:07:56

gasole
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 1117
Lieu: Toulouse

Programme à en pas faire

pour compléter ce que dit frimouzt, &i est un pointeur et en fait tu parcours la mémoire de ton ordi (pas tout car il y a des zones interdites), ce qui est dedans peut être n'importe quoi comme octets, et printf affiche à l'écran les caractères ascii correspondant aux octets rencontrés (qui peuvent venir d'une image, d'un programme, bref d'un tas de trucs smile )

 #6 - 09-02-2011 15:08:17

clementmarmet
Elite de Prise2Tete
Enigmes résolues : 34
Messages : 1329
Lieu: I'm in spaaaace!!

Programme à ne paas faire

http://www.pmoioui.com/chrono/images/shadock6_s.gif

lollol


eki eki eki pa tang!!

 #7 - 09-02-2011 15:15:40

gasole
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 1117
Lieu: Toulouse

Programme à n pas faire

J'adore celle-ci dans le genre blague G33K

http://www.prise2tete.fr/upload/gasole-nicetry.jpg

 #8 - 09-02-2011 15:34:34

Klimrod
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 4045
Lieu: hébesphénorotonde triangulaire

Prorgamme à ne pas faire

L00ping007 a écrit:

Les boucles infinies, c'est sympa, mais c'est dangereux lol

Et comme c'est Looping qui dit ça, on peut le croire ! lol


J'ai tant besoin de temps pour buller qu'il n'en reste plus assez pour bosser. Qui vit sans folie n'est pas si sage qu'il croit.

 #9 - 09-02-2011 15:37:39

shadock
Elite de Prise2Tete
Enigmes résolues : 39
Messages : 3334

Programme à ne ps faire

OK merci big_smile Je me doutais que c'était ça lol
Ils sont fou ces shadoks...tongue


"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline

 #10 - 09-02-2011 15:44:21

L00ping007
Elite de Prise2Tete
Enigmes résolues : 49
Messages : 2010
Lieu: Paris

Programme à ne pas fair

Klimrod a écrit:

L00ping007 a écrit:

Les boucles infinies, c'est sympa, mais c'est dangereux lol

Et comme c'est Looping qui dit ça, on peut le croire ! lol

Joli smile J'y avais même pas pensé :p

Pour info sur mon message plus haut, la fonction fork() créé un processus qui va à partir du fork() exécuter le même programme. On imagine bien que si on fait des fork() dans une boucle infinie, on va en créé beaucoup des processus qui vont créer des processus qui vont créer des processus ... Au bout d'un moment, tout plante !

 #11 - 09-02-2011 16:01:38

LeSingeMalicieux
Elite de Prise2Tete
Enigmes résolues : 49
Messages : 1298
Lieu: Haute-Marne

Progarmme à ne pas faire

Pas mal ton dessin gasole lol


Avoir quatre mains, c'est plus pratique pour taper sur un clavier.

 #12 - 09-02-2011 17:33:23

MthS-MlndN
Hors d'u-Sage
Enigmes résolues : 49
Messages : 12,414E+3
Lieu: Rouen

Programmme à ne pas faire

+1 : j'adore smile


Podcasts Modern Zeuhl : http://radio-r2r.fr/?p=298

 #13 - 09-02-2011 21:52:54

gasole
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 1117
Lieu: Toulouse

programme à ne paq faire

si je le poste, c'est que je l'adore aussi big_smile d'ailleurs si quelqu'un peut me dire d'où il vient ...

 #14 - 10-02-2011 01:55:50

dhrm77
L'exilé
Enigmes résolues : 49
Messages : 3004
Lieu: Fanning Island-?-Lac Tele,Mali

Programme ne pas faire

gasole a écrit:

pour compléter ce que dit frimouzt, &i est un pointeur et en fait tu parcours la mémoire de ton ordi (pas tout car il y a des zones interdites), ce qui est dedans peut être n'importe quoi comme octets, et printf affiche à l'écran les caractères ascii correspondant aux octets rencontrés (qui peuvent venir d'une image, d'un programme, bref d'un tas de trucs smile )

Non gasole,
Ce que fait son programme c'est imprimer ce que contient 'i' comme si i etait une chaine de caracteres. Donc comme il increment i, ca affiche naturellement tout le code ascii, et au dela.
Au lieu de:
printf(&i,"%d");
Ce qu'il voulait probablement faire c'est
printf("%d", i);
et puis le while(1) est bien sur responsable de la boucle infinie...


Great minds discuss ideas; Average minds discuss events; Small minds discuss people. -Eleanor Roosevelt

 #15 - 10-02-2011 17:53:43

gasole
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 1117
Lieu: Toulouse

ptogramme à ne pas faire

dhrm a écrit:

Non gasole,

Exact, j'ai parlé encore trop vite, j'ai répondu comme s'il avait écrit "*p" et non "&p" et qu'il avait un compilateur pourri qui ne l'en empêche pas.

dhrm a écrit:

Ce que fait son programme c'est imprimer ce que contient 'i' comme si i etait une chaine de caracteres. Donc comme il increment i, ca affiche naturellement tout le code ascii, et au dela.

Normalement NON. D'ailleurs moi, j'obtiens bien l'affichage de l'adresse de i qui ne change pas (incrémenter i n'augmente pas sa valeur).
Tu as peux être raison, mais alors c'est son compilateur qui interprète "&i" comme "i" et c'est grave... mais il faudrait vérifier que lse caractères qu'il obtient sont consécutifs...  Tu utilises quoi FRIMOUZT comme IDE et comme compilateur ?

Tu peux faire une boucle jusqu'à 20 et faire une copie d'écran ? Ou mieux, ajouter printf("%d",i) en plus de printf("%d",&i) et peut être qu'on saura.

dhrm a écrit:

Au lieu de:
printf(&i,"%d");
Ce qu'il voulait probablement faire c'est
printf("%d", i);
et puis le while(1) est bien sur responsable de la boucle infinie...

Oui, ça c'est sûr.

 #16 - 10-02-2011 18:49:08

FRiZMOUT
Verbicruciste binairien
Enigmes résolues : 49
Messages : 2218

Programmme à ne pas faire

Moi c'est FRiZMOUT tongue
Et je pense que tu voulais dire shadock.

 #17 - 10-02-2011 18:54:46

kosmogol
Banni
Enigmes résolues : 49
Messages : 11,928E+3

Programme à ne pa faire

De toutes façons c'est du C, pouah !


http://enigmusique.blogspot.com/

 #18 - 10-02-2011 19:31:30

gasole
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 1117
Lieu: Toulouse

Programme à ne pas aire

FRiZMOUT a écrit:

Moi c'est FRiZMOUT tongue
Et je pense que tu voulais dire shadock.

Vi! Je dois carrément avoir des troubles neurologiques.
C'est vrai que c'est du C...beurk! Mais bon, si shadock veut comprendre à lui de voir...

 #19 - 10-02-2011 19:38:08

MthS-MlndN
Hors d'u-Sage
Enigmes résolues : 49
Messages : 12,414E+3
Lieu: Rouen

Programme à ne pass faire

FORTRAN powaaaaa ! lol


Podcasts Modern Zeuhl : http://radio-r2r.fr/?p=298

 #20 - 10-02-2011 19:52:40

gasole
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 1117
Lieu: Toulouse

programme à ne pzs faire

Fortran c'est naze! Vive le Brainfuck!

 #21 - 10-02-2011 19:58:27

kosmogol
Banni
Enigmes résolues : 49
Messages : 11,928E+3

programme à ne pas faite

Ada, Java des trucs normaux quoi !


http://enigmusique.blogspot.com/

 #22 - 10-02-2011 21:18:19

shadock
Elite de Prise2Tete
Enigmes résolues : 39
Messages : 3334

programle à ne pas faire

Perso, j'utilise codeblocks et je n'ai jamais eu de problèmes smile le coup de la boucle infinie c'était pour voir ce que ça faisait tongue, maintenant j'ai la réponse et oui j'ai fais l'erreur, oh l'erreur (cf. Chevalier et Laspales) j'ai rajouté un pointeur lol

Et puis après le C, le C++ si je peux rassurer Kosmo mais quand on débute c'est bien de savoir comment fonctionne les choses à la base.


"L'expérience est une lanterne qui n'éclaire que celui qui la porte." L-F. Céline

 #23 - 10-02-2011 21:19:20

kosmogol
Banni
Enigmes résolues : 49
Messages : 11,928E+3

progeamme à ne pas faire

J'ai commencé par l'assembleur 8080 roll


http://enigmusique.blogspot.com/

 #24 - 10-02-2011 22:51:23

MthS-MlndN
Hors d'u-Sage
Enigmes résolues : 49
Messages : 12,414E+3
Lieu: Rouen

Programmme à ne pas faire

gasole a écrit:

Fortran c'est naze! Vive le Brainfuck!

Je préfère le Whitespace ^^


Podcasts Modern Zeuhl : http://radio-r2r.fr/?p=298

 #25 - 10-02-2011 23:12:14

gasole
Elite de Prise2Tete
Enigmes résolues : 40
Messages : 1117
Lieu: Toulouse

Programme à nee pas faire

shadock a écrit:

Et puis après le C, le C++ si je peux rassurer Kosmo mais quand on débute c'est bien de savoir comment fonctionne les choses à la base.

Moi aussi, j'ai dit beurk... en fait tout dépend de ce qu'on veut faire : mécanicien ou concepteur de voiture. Chacun son job. Et il n'y a pas de jugement de valeur : il y a des mécaniciens qui sont des dieux et des concepteurs qui sont de gros nazes... Le C c'est pour les mécanos, ils trifouillent dans le moteur eux, plus on est dans l'abstrait, plus le langage le sera aussi. Honnêtement pour les usages que j'en ai c'est Scheme qui a ma préférence.

Réponse rapide

Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Sécurité

Répondez (numériquement) à la petite énigme suivante : 

Si il y a 63 pommes et que vous en prenez 23, combien en avez-vous ?

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete