Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#76 Le 14/04/2010, à 22:17

samυncle

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

tshirtman a écrit :

moi je trouve qu'il marche comme prévus là smile

Moi pas, bien sur il poste mais mal (il est sensé afficher les scores)


Hello world

Hors ligne

#77 Le 14/04/2010, à 22:27

Kanor

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

(robot codé par samuncle)

Tu l'a recodé ?

Hors ligne

#78 Le 14/04/2010, à 22:32

samυncle

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Bon il marche pas mal \o/

Kanor a écrit :

(robot codé par samuncle)

Tu l'a recodé ?

Je l'ai un peu adapté pour ici. Mais j'avais un ancien robot qui utilisait le compte d'oracle et j'ai pas changé la signature

Dernière modification par samuncle (Le 14/04/2010, à 22:33)


Hello world

Hors ligne

#79 Le 14/04/2010, à 22:33

PPdM

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

@samuncle
t'aurais pu le mettre a l'heure ton bot !:P
poster a 22H30  c'est trop tot ou trop tard !:P

Dernière modification par pierguiard (Le 14/04/2010, à 22:38)


La critique est facile, mais l'art est difficile !
L'humanité étant ce qu'elle est, la liberté ne sera jamais un acquit, mais toujours un droit à défendre !
Pour résoudre un problème commence par poser les bonnes questions, la bonne solution en découlera

Hors ligne

#80 Le 14/04/2010, à 22:35

samυncle

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Mouais c'est un vrai con


Hello world

Hors ligne

#81 Le 14/04/2010, à 22:36

helly

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Et ça se dit couche  tard codeur big_smile


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#82 Le 14/04/2010, à 22:37

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Il y a un problème avec les scores, non ?

Hors ligne

#83 Le 14/04/2010, à 22:39

helly

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

grim7reaper a écrit :

Il y a un problème avec les scores, non ?

Toutafé ....
le max devrait être de deux points

Dernière modification par helly (Le 14/04/2010, à 22:40)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#84 Le 14/04/2010, à 22:39

samυncle

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Ok j'ai neutralisé le message *** invaincu avant retraite ***

(mais c'est une vraie machine à flooder)


Hello world

Hors ligne

#85 Le 14/04/2010, à 22:42

cm-t

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Spamelot!

je suis dans l'igniore list?

Dernière modification par cm-t (Le 14/04/2010, à 22:43)


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#86 Le 14/04/2010, à 22:44

Pylades

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

grim7reaper a écrit :

Pour les com à la C++ c'est effectivement intégré, mais en C99.
Pour la gueulante, c'est l'option -Wwrite-strings. Elle n'est pas activée pas -Wall car c'est une nuisance si tu n'est pas strict avec les const dans tes prototypes et déclarations (mais c'est une bonne habitude à prendre que de mettre ce qui ne doit pas être modifié en const (permet des optimisations et améliore les détections d'erreurs) et d'activer cette option pour veiller).

Mais si je veux modifier ma chaîne (comme dans le cas présent) ?

grim7reaper a écrit :

Bon mon intuition était juste cool. Il y a une règle quasi-immuable en C

Un grand sage a écrit :

if(comportement == aleatoire || comportement == mystique)
{
    puts("Forte suspicion de corruption memoire\n");
    puts("Verifiez pointeurs, tableaux et chaines de caracteres ainsi que tout code les manipulant\n");
    puts("Aider vous de GDB et/ou de Valgrind (printf & cie aussi dans une moindre mesure\n");
}

La ligne fautive

for(shn=0;optv[optn]->short_unact[shn]!='\0';shn++)

Tu boucles sur le contenu de short_unact, mais tu ne l'a jamais initialisé mad.
Tu boucles sur un truc carrément indéfinie, donc tu parcours la mémoire allégrement (et l'affiche) jusqu'à rencontrer un byte nul.
Donc, à un moment, tu dois passer dans le segment mémoire .data de ton programme (où sont stockées les variables statiques initialisées, entre autres, comme tes chaînes littérales "opt1 active!" et "opt2 active!") et tu les affiches, voilà donc la source de tes apparitions mystiques.
Tu vois, rien de magique smile, que de la logique (comme toujours en informatique), bien que l'explication nécessite des notions sur la structure d'un exécutable ELF.

Merci beaucoup !
Les paroles du grand sage sont très pertinentes.
Donc, l’utilisateur est con, il ne va pas tout initialiser à chaque fois. Y a-t-il un moyen simple d’initialiser les composants d’une structure à une valeur pas défaut ?

grim7reaper a écrit :

Sinon, tant que j'y suis, j'ai cru voir que tu n'as pas bien compris le fonctionnement de strcpy (au vu de l'utilisation que tu en fais).
La fonction strcpy copie une chaîne de caractère là où tu lui dis. Cependant, il est à ta charge d'allouer un espace (via malloc/calloc ou par déclaration préalable, sinon tu risque la SIGSEV) et de taille suffisante (à toi de vérifier ou d'utiliser strncpy, si tu dépasses c'est le buffer overflow tant apprécié des hackers pour faire de zouli exploits big_smile).

J’ai lu le man, mais je ne comprends pas ce qui ne va pas.
/me est peut-être un peu fatigué || stupide.

grim7reaper a écrit :

Édit : à toutes fins utiles voici ma ligne de compilation traditionnel (et pas parano) pour une compil en mode debug

gcc -g -ansi -pedantic -Wall -Wextra -O0 -Wwrite-strings -Wstrict-prototypes -Wunreachable-code

-Wstrict-prototypes est peut-être superlfu (activé par -pedantic ? -ansi ? -Wall ? -Wextra ?).

yikes
Et quand t’es parano, tu fais comment ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#87 Le 14/04/2010, à 22:44

samυncle

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

\o/ on est tous premier \o/

je suis dans l'igniore list?

Non personne n'y est \o/

Dernière modification par samuncle (Le 14/04/2010, à 22:45)


Hello world

Hors ligne

#88 Le 14/04/2010, à 22:47

cm-t

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

:d


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#89 Le 14/04/2010, à 22:49

cm-t

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Louez cet espace publicitaire (plus d'information bientôt)


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#90 Le 14/04/2010, à 22:53

Grünt

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

wanboot info: host-ip not set!

Rhaaaaaaaa Sun de m**** mad

(Et maintenant, les gens qui vont chercher "wanboot info: host-ip not set!" sur Google, comme je viens de le faire, arriverons ici tongue)


Red flashing lights. I bet they mean something.

Hors ligne

#91 Le 14/04/2010, à 22:55

samυncle

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Bon le robot semble opérationnel et marcher correctement. On verra cela demain matin tongue


Hello world

Hors ligne

#92 Le 14/04/2010, à 23:01

cm-t

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Gort! Klaatu barada nikto !


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#93 Le 14/04/2010, à 23:04

Pylades

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

ǤƦƯƝƬ a écrit :
wanboot info: host-ip not set!

Rhaaaaaaaa Sun de m**** mad

(Et maintenant, les gens qui vont chercher "wanboot info: host-ip not set!" sur Google, comme je viens de le faire, arriverons ici tongue)

lol
1271279049.png


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#94 Le 14/04/2010, à 23:20

oracle_bot

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

..:: présentation des défis ::..

Un défit est une énigme (il y en aura pour tout les gouts) qui est posté par le robot chaque matin (sous le terme défit du jour). Vous pourrez proposer vos réponses avec la syntaxe suivante:

<robot> ma réponse </robot>

Si votre réponse est juste alors le robot rajoute un point à votre score des défis, et change le défit. Inutile de flooder (le robot ne tient compte que d'une réponse par personne et par jour. S'il y en a plusieurs, il vous ignore.) Si plusieurs personnes trouvent la bonne réponse, alors elles auront chacun 1 point.

Attention ce score est différents de celui traditionnel de celui qui a posté le plus tard. Une seule personne n'a pas le droit de poster des réponses, il s'agit de samuncle

Bonne chance Rendez-vous demain pour le premier défit


robot multitâche codé par samuncle

Pour la partie compteur utilise le script de tshirtman. Le code source se trouve ici

Hors ligne

#95 Le 14/04/2010, à 23:22

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

Pylade a écrit :

Mais si je veux modifier ma chaîne (comme dans le cas présent) ?

Tu veux modifier quelle chaîne et à quel endroit ?
Si tu veux des chaînes variables, c'est du strcpy ou assimilé et tu oublies l'affectation par "=" (si tu modifie ça, c'est comportement indéterminé par la norme, laissé à la bonne appréciation du système : SIGSEV, autodestruction tongue, etc.)
Mais que l'on soit bien d'accord, quand je te parle de const, dans le cas présent, c'est un pointeur sur une chaîne constante (const char*). Ce qui signifie que tu peux changer la chaînes sur laquelle tu pointes mais pas modifier une chaîne pointée.
Exemple

const char* proof = "-";
proof = "+" /* Ok, tu pointes ailleurs, c'est la chaîne qui est constante, pas le pointeur */
proof[0] = '/' /* Va chier, tu pointes sur du constant donc tu ne modifies pas le contenu */

Il faut différencier :
- const char* (ou char const *) => pointeur variable sur une chaîne constante
- char *const => pointeur constant sur une chaîne variable
- const char *const => pointeur constant sur une chaîne constante

Si tu veux modifier la chaîne pointée oublie l'affectation "=" avec les chaînes littérales et fais du strcpy. Si tu veux juste modifier le pointeur (et pas la chaîne pointée) dans ce cas modifie tes "char *" en "char const *".

Pylade a écrit :

Merci beaucoup !
Les paroles du grand sage sont très pertinentes.
Donc, l’utilisateur est con, il ne va pas tout initialiser à chaque fois. Y a-t-il un moyen simple d’initialiser les composants d’une structure à une valeur pas défaut ?

C'est marrant que tu parles de ça, il y à eu un débat similaire sur ce sujet il y a peu (ici)
Non, ce que tu demandes c'est un constructeur comme il en existe dans les langages objets. Donc soit tu passes au C++ ou autres langages possédant les constructeurs, soit tu t'adaptes.
En l'occurrence, le mieux que tu puisse faire c'est une fonction new_opt (qui alloue une structure option et l'initialise avec des valeurs par defaut, libre au programmeur de modifier ce qu'il souhaite ensuite) à appeler pour créer une nouvelle option (ne pas oublier l'éventuelle fonction free_opt qui sera potentiellement requise), ou alors une fonction init_opt à appliquer sur chaque nouvelle option juste après sa déclaration et qui se charge de mettre des valeurs par défaut à chaque champs (modifiable par l'user par la suite bien sûr).
Mais tout cela reste à la charge de l'utilisateur (il faut l'appeler explicitement), rien d'automatique à ce niveau-là en C.

Pylade a écrit :

J’ai lu le man, mais je ne comprends pas ce qui ne va pas.
/me est peut-être un peu fatigué || stupide.

Ta structure retr déclare 2 pointeurs de char* (qui vont être des tableaux de chaînes de caractères dans ton cas il me semble), mais ces pointeurs pointent dans du vent et aucun espace (les fameux tableaux) n'est réservé.

strcpy(ret->argsv[i++],"-");
...
strcpy(ret->argsv[i++],argv[argn]);

Ces lignes copient les chaînes ("-" et argv[argn]) n'importe où en mémoire en écrasent ce qui s'y trouve. Je n'ai pas besoin de te faire un dessin sur ce qui peux (va) se produire smile.
D'où mes allusions aux réservations d'espace (dynamique ou à la déclaraion).

Pylade a écrit :

Et quand t’es parano, tu fais comment ?

Je n'ai jamais eu à allez plus loin jusqu'à maintenant. Ces paramètres sont suffisamment stricts pour m'avoir permis de détecter une bonne majorité des erreurs dès la phase de compilation.
Cela dit, j'ai le man de gcc (bien touffu certes) et quelques exemples sous la main qui me permettent de serrer la vis si le besoin s'en fait sentir smile.

Dernière modification par grim7reaper (Le 14/04/2010, à 23:30)

Hors ligne

#96 Le 14/04/2010, à 23:22

helly

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

<robot>plop</robot> tongue


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#97 Le 14/04/2010, à 23:23

cm-t

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

peut-on plopper en tapant moins de caractère que ca ?

yes|sed s/y/plop/g

18 caractères ici

ca fait une bonne 1ère enigme non?


edit: des point pour les Hdp ?

Dernière modification par cm-t (Le 14/04/2010, à 23:23)


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#98 Le 14/04/2010, à 23:29

helly

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

echo plop

8


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#99 Le 14/04/2010, à 23:30

cm-t

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

cm-t a écrit :

peut-on flooder-plopper en tapant moins de caractère que ca ?

yes|sed s/y/plop/g

18 caractères ici

ca fait une bonne 1ère enigme non?


edit: des point pour les Hdp ?

*fixed*



edit:et pis

plop

renvois 2plop et plus si tu en a dans un dépot tongue

Dernière modification par cm-t (Le 14/04/2010, à 23:32)


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#100 Le 14/04/2010, à 23:32

grim7reaper

Re : ..:: Topic des Codeurs Couche-Tard [0] ::..

@helly : non, 9 car on compte l'espace

yes plop

8
Et bonus pour flood de plop lol

Hors ligne