|
CDeX |
Programation en C |
22 |
03/02/10 à 16:43 |
Bonjour à toutes et à tous.
Je me suis lancé depuis très peu dans la programmation avec le site du zéro. Cependant j'aimerais avoir un petit coup de main de la part de quelqu'un de plus expérimenter que moi. Je sais que ce sujet a déjà était poster, cependant je n'y ai pas vraiment trouver de réponse, mon problème étant bien plus ciblé.
Lorsque je lance mon programme fraichement écrit, il se lance sans aucun problème. Mais lors de l'exécution de sa tache, il me renvoi la valeur - 1073741819 a la place de la valeur 0 et un message d'erreur de windows apparait.
Mais si il y a une erreur, mon programme ne devrait pas compiler ?
Donc je cherche quelqu'un d'assez aimable pour m'aider, voir pour relire mon code ( très court ne vous inquiétez pas ) pour voir si je suis vraiment mauvais ou si il y a un véritable souci.
Merci
CDeX
Programation en C |
1/22 |
03/02/2010 à 16:44 |
envoie ton code
Programation en C |
2/22 |
03/02/2010 à 16:44 |
Il y a bien un forum sur le site du zero ?
Programation en C |
3/22 |
03/02/2010 à 17:57 |
le forum du site est tres bien pour ce genre de question
Programation en C |
4/22 |
03/02/2010 à 18:04 |
Et le site du zéro, c'est pas génial.
Programation en C |
5/22 |
03/02/2010 à 18:14 |
C'est vrai que il y a d'autres sites pas mal non plus (devellopez ...)
Programation en C |
6/22 |
03/02/2010 à 18:15 |
Merci beaucoup a Bring-me-jambon pour son aide.
Si vous avez d'autre site pour apprendre, je suis prenneur. =)
CDeX
Programation en C |
7/22 |
03/02/2010 à 18:16 |
Ne t'inquiètes pas, une fois que Phylos sera là, tu n'auras plus jamais aucun problème quel que soit le domaine qui t'en poses (!)
Programation en C |
8/22 |
03/02/2010 à 19:02 |
Kikoologue a écrit :
Ne t'inquiètes pas, une fois que Phylos sera là, tu n'auras plus jamais aucun problème quel que soit le domaine qui t'en poses (!)
Sauf la sécurité informatique. Là, je pourrais éventuellement répondre à deux ou trois questions. Mais faut pas abuser non plus.
Et évite le scanf() pour le moment, utilise plutôt getchar(). Histoire de prendre de bonnes habitudes.
Programation en C |
9/22 |
03/02/2010 à 19:45 |
Nan mais fallait prendre Linux hein on t'avais prévenu...
Programation en C |
10/22 |
03/02/2010 à 20:20 |
Pour prendre de bonne habitudes, je conseillerais plutôt d'utiliser read(2) que getchar.
Sinon pour le problème du topic, euh, return 0; ?
Programation en C |
11/22 |
03/02/2010 à 20:36 |
poezia a écrit :
Pour prendre de bonne habitudes, je conseillerais plutôt d'utiliser read(2) que getchar.
Connais pas. C'est quoi la différence ? J'ai essayé de lire un man read() mais je capte que dalle.
Pour le return 0, à mon avis, s'il suit le sdz, il est sous un IDE, comme code:block et dans ce cas, l'IDE le rajoute lui même.
Les IDE, saymal.
Programation en C |
12/22 |
03/02/2010 à 20:54 |
Salut.
Copie le code source ici si tu veux qu'on puisse t'aider.
A priori tu gères mal ta mémoire, si tu fais planter le PC c'est que tu dois avoir un buffer overflow ou un truc du genre. Éventuellement tu ne dois pas lire à l'endroit où tu écris...
Et la fonction propre pour faire de l'acquisition, c'est scanf().
Programation en C |
13/22 |
03/02/2010 à 21:07 |
CanardVert, c'est "man 2 read" qu'il faut faire (d'où le 2 entre parenthèses).
Ça permet juste de lire dans un fichier, ou sur l'un des 3 file descriptors ouverts par défaut (à savoir, 0: entrée standard, 1 sortie standard et 2 sortie d'erreur).
Il suffit donc de lire sur l'entrée standard.
Par contre ça demander de gérer un emplacement mémoire pour stocker ce qu'on lit, etc, mais au moins on contrôle bien ce qu'on fait (c'est pour ça qu'on fait du C, en général).
Soko, si c'est un programme de DÉBUTANT, je doute fortement qu'il fasse un buffer overflow ou un truc quelconque du genre. Sauf s'il a mal copié/collé un truc d'exemple, mais j'en doute.
Et non, scanf n'a RIEN de propre. Tout comme printf, c'est immonde.
Programation en C |
14/22 |
03/02/2010 à 21:15 |
+1, mais pour le Buffer overflow, c'est bien avec un scanf qu'on s'en prend un.
Hum ok. J'avais complètement oublié le 2 quand j'ai googlé. Désolé.
Programation en C |
15/22 |
03/02/2010 à 21:19 |
Canardvert a écrit :
+1, mais pour le Buffer overflow, c'est bien avec un scanf qu'on s'en prend un.
Hum ok. J'avais complètement oublié le 2 quand j'ai googlé. Désolé.
Han tu lis tes man sur Google, t'es trop un false.
Ouvre une console, ça va plus vite ;)
Programation en C |
16/22 |
03/02/2010 à 21:25 |
Je suis sous Windows. Pas génial pour faire un man. (et j'ai mes raisons ;) ).
Mais c'est très bien les man qu'on trouve avec Google. La preuve, c'est avec ça que j'ai appris comment fonctionnait un getchar.
Et les consoles, c'est moche.
Programation en C |
17/22 |
03/02/2010 à 21:37 |
Et les consoles, c'est moche.
Han mais le noob quoi.
Programation en C |
18/22 |
04/02/2010 à 01:49 |
Kikoologue a écrit :
Ne t'inquiètes pas, une fois que Phylos sera là, tu n'auras plus jamais aucun problème quel que soit le domaine qui t'en poses (!)
Pas mal la blague ;)
Autrement, concernant la valeur retournée (et l'erreur Windows) : Je dirais erreur de segmentation (tu lis/écris dans une zone mémoire qui ne t'appartient pas)
Sans erreur, j'aurais dit un oubli d'initialisation.
Mais après j'ai pas le code, donc ... ce ne sont que des suppositions.
Programation en C |
19/22 |
04/02/2010 à 18:23 |
poezia a écrit :
Et non, scanf n'a RIEN de propre. Tout comme printf, c'est immonde.
Pourquoi ça?
Vu que j'utilise que ça, ça m'inquiète un peu xD.
Programation en C |
20/22 |
04/02/2010 à 18:53 |
Pour le scanf, il y a un tuto spécialement dédié sur developpez, à propos de son utilisation.
Par contre, pour le printf, je suis aussi preneur d'infos.