CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : printf("blabla");

News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
DébutPage précedente
1234567891011  ... 156»
Page suivanteFin
_skip _skip
MP
Niveau 10
11 février 2010 à 15:25:49

J'ai constaté l'écran ce matin... Google a lancé son propre truc.
Sauf que ça ne m'intéresse pas, d'autant plus que je trouve le net déjà bien trop pollué par ces réseaux de boulets exhibitionnistes.

tome_x tome_x
MP
Niveau 4
13 février 2010 à 18:59:57

alors voila j'ai crée un éditeur de texte avec delphi7 il fonctione parfaitement sauf que lorsqu'on enregistre un fichier on ne peut pas choisir l'extention comme *.txt *.rtf donc si on peut m'aider... merci
tenez voici le code en pascal:

procedure TForm1.ToolButton3Click(Sender: TObject);
begin

FileSaveDialog1.Execute;

RichEdit1.Lines.SaveToFile(FileSaveDialog1.FileNam
e);

end;

godrik godrik
MP
Niveau 22
03 mars 2010 à 02:00:15

mon erreur stupide d'aujourdhui.

On implemente en C des tonnes d'algorithmes de partitionnement de matrice.
Une fonction que l'on utilisait au prealable se met a avoir un comportement bizarre
la valeure qui est retourner dans le corps de la fonction n'est pas le meme que celui qui est recupere a l'exterieur. Je me dis que mon pointeur de pile est dans les choux a cause d'un access memoire a la con. Je le passe dans valgrind. pas d'erreur. Je verifie les variables autour dans la pile, toujours rien d'anormale, juste cette valeure est pourrie.

Je commence a me dire que le bug a l'air mystique et je verifie la fonction appellante. Je vois qu'elle utilise un heap qui est gere par une lib externe. L'etudiant qui a ecrit le code me dit que c'est la premiere fois que l'on utilise ce code de heap et qu'il pense que le probleme est la. Je lui demande ou est le code de test de la heap, il me dit que comme c'est une lib externe, il a fait confiance au code et n'a pas ecrit de code de test.

Me voila parti dans l'ecriture d'un test complique de la heap pour verifier tous les corners case auxquels je pense. L'implementation de la heap passe tous les tests. Je retourne sur le code et dans mon debugger et a rajoutter des informations de debuggage et je ne vois toujours pas de bug.

Je me dis que si on oublie de passer des parametres a une fonction, ca pourrait decaler le pointeur de pile. Je verifie les parametres de fonction, tout ce passe bien.

Je continu de me dire que le code de cette heap est un peu obscure avec tout plein d'appel a pthread et des modificateur de conventions d'appel. Je commence a reecrire une file a priorite dans un tableau. Ca aura une performance minable, mais ca me permettra de debuger. Quand l'implementation est fini. Je la teste et l'integre dans notre base de code.

Le code ne marche toujours pas. Je me repose la question "qu'est ce qui peut mettre le souk dans une pile?". Je pense aux fonction a nombres d'arguments variable et commence a traquer tous les appels a printf. Une fois qu'ils sont tous commenter/desactiver, je reteste le code. Toujours le meme bug.

Je retourne voir les declarations de mes fonctions et verifie les prototype un a un. la fonction qui m'interesse prends bien 5 parametres en entree, un pointeur sur double et 4 entier et retourne un double. Retourne un double ? ca devrait retourner une position dans un tableau ! Je verifie l'implementation de la fonction, elle retourne un entier...

Conclusion, le code que l'on etait entrain d'ecrire pense que la fonction retourne un double et fait un type cast vers entier silencieux.
Le compilateur n'a rien vu parceque la definition et la declaration sont dans deux processus de compilation different!

Lecon du jour:
Le bug est toujours plus stupide que tu ne le pense.
Le C n'est pas un langage assez typer.
On pourrait ajouter des informations de debugage pour faire beeper le linker.

_skip _skip
MP
Niveau 10
03 mars 2010 à 19:31:20

Une journée vraiment calme sur ce forum...

godrik godrik
MP
Niveau 22
03 mars 2010 à 19:35:59

Ca veut dire que tout marche bien. C'est plutot bon signe ! :)

En plus, je manque cruellement de temps en ce moment donc ca m'evite d'avoir un backlog de moderation.

_skip _skip
MP
Niveau 10
03 mars 2010 à 19:41:05

Je passe régulièrement durant la journée, entre ici et developpez.com. Ca me fait faire autre chose 5 minutes. Il m'arrive même parfois d'aller sur le forum linux au hasard.

Je serai pas contre un peu plus d'activité ou de débats parfois.

godrik godrik
MP
Niveau 22
03 mars 2010 à 19:44:06

mmm, ca peut se faire.

dnob700 dnob700
MP
Niveau 10
03 mars 2010 à 22:30:19

"Le C n'est pas un langage assez typer."

Ce genre de message est pas mal. Dire que je croise toujours des gens (dont mon prof de programmation de prépa) qui trouve que le système de type de Caml (par exemple) est une gêne pour programmer et pas une aide.

_skip _skip
MP
Niveau 10
04 mars 2010 à 09:59:09

Justement, un petit jeu
Voici un code PHP :

$var = true ;
if( $var == "true" ) echo("C'est vrai !");
if( $var == "false" ) echo("C'est faux !")
if( $var == "caribou" ) echo("C'est un cariboo !");
if( $var == 4 ) echo("C'est le nombre 4!") ;

Sans tester, essayez de prévoir la sortie (en gros quelle expression if renvoie vrai ou faux).

dnob700 dnob700
MP
Niveau 10
04 mars 2010 à 11:01:47

Si on suppose que ce sont les chaînes qui sont convertie en booléen (c'est un tout petit peu plus logique que le contraire) alors j'imagine que au moins le premier et le troisième test sont vrai. Le second l'est peut-être, ça dépend de quelles chaînes sont converties vers false (selon les langages c'est soit "" soit "false" soit les deux).

Le dernier test est très probablement vrai aussi car j'imagine que 4 se cast en vrai plutôt que true en 1 ou -1 ce qui n'est pas très logique.

godrik godrik
MP
Niveau 22
04 mars 2010 à 15:55:40

un langage qui me forcerait a faire explicitement tous les types cast m'irait tres bien.

Pour le code de _skip, je ne sais plus bien comment c'est en PHP, mais il y a un operateur === qui existe egalement qui a un comportement different de == quand les types variables sont differents.

Je viens de tester le code de skip et mon interpreteur en pense :
Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /home/erik/- on line 3 (numero de ligne edite) :)

Le resultat me fait vraiment dire que php est un langage encore plus pourri que bash.

_skip _skip
MP
Niveau 10
04 mars 2010 à 16:00:58

sans tricher!

Silvertux Silvertux
MP
Niveau 10
04 mars 2010 à 18:07:26

Il manque un ; à la 3ème ligne :o)
_________________________________________
          :pacg: http://silvertux.free.fr/ :pacd:

Silvertux Silvertux
MP
Niveau 10
04 mars 2010 à 18:07:52
  • :o))

_________________________________________
          :pacg: http://silvertux.free.fr/ :pacd:

caelacanthe caelacanthe
MP
Niveau 10
04 mars 2010 à 18:35:26

"Je viens de tester le code de skip et mon interpreteur en pense :
Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /home/erik/- on line 3 (numero de ligne edite) :)

Le resultat me fait vraiment dire que php est un langage encore plus pourri que bash."

:d) stop accuser le langage, il manque un point virgule a la fin de la troisième ligne, s'too :(

godrik godrik
MP
Niveau 22
04 mars 2010 à 18:37:51

Evidement que j'ai corrige le ; a la ligne 3. Je parle du vrai resultat que ca donne qui est ridicule.

_skip _skip
MP
Niveau 10
04 mars 2010 à 20:21:07

dnob700 était pas loin

La réponse est donc :

C'est vrai !
C'est faux !
C'est un caribou !
C'est le nombre 4 !

J'ai du codé une API sur les services fournis par notre boîte en Php, c# et java.
C'est bien PHP qui m'a causé le plus de soucis, comme quoi la facilité offerte est pas toujours un avantage sur le long terme sur des bases de codes non triviales (52 classes).

Si vous avez pas de tests unitaires qui couvrent 100% du code en PHP, vous pouvez presque rien garantir tant certains gags de ce genre peuvent s'avérer trompeurs. Et puisqu'il n'y a pas de compilation, une simple fausse manip (retour à la ligne malencontreux, ou frappe clavier involontaire) en jetant un oeil au code peut tout flinguer à votre insu.

le PHP est pour moi un exemple d'un langage qui est aujourd'hui utilisé pour des besoins qui ne semblent pas ceux pour lesquels il a été créé. Je pense surtout aux grosses applications web.

deepblue deepblue
MP
Niveau 13
04 mars 2010 à 21:48:54

tu peux tester le type des données à tester avec === ou !== du coup, tu ne devrais rien voir dans ton test si tu remplaces les ==.

deepblue deepblue
MP
Niveau 13
04 mars 2010 à 21:51:58

bon, je devrais lire avant de poser une réponse :honte:

Je sors.

caelacanthe caelacanthe
MP
Niveau 10
06 mars 2010 à 00:44:37

hai all :coeur:

je cherche un moyen de créer un répertoire virtuel en ram. l'idée serait que son fonctionnement soit transparent, càd qu'on puisse l'utiliser comme un vrai volume :oui:

en fait, j'ai envie de sortir un jeu en deudé (voire 3D :hap: ) sur disquette, pour goûter aux joies de l'optimisation de l'espace disque. pour ça, paq8px est mon ami. :noel:

Sauf qu'il ouvre des archives et crée des fichiers a coté, je ne vois pas comment le détourner pour qu'il envoie des choses en ram. est-ce qu'il existe une méthode pour créer un volume comme ça, en RAM, utilisable comme n'importe quel volume physique (pour le chargement des ressources via les librairies graphiques)? :doute:

DébutPage précedente
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment