Help, i'm gonna kill myself. [ C ] - C++ - Programmation
Marsh Posté le 18-06-2002 à 16:23:32
c surement un débordement mémoire.
quand tu fais un *scanf (ici, un fscanf), pour tes arguments (les derniers paramètres), tu doit mettre l'adresse, pas l'argument lui-même, donc tu vas plutot mettre :
Code :
|
ensuite, vas voir sur l'autre topic pour la lecture de fichier :
http://forum.hardware.fr/forum2.ph [...] h=&subcat=
Essaye déja ça avant de te tuer !
Marsh Posté le 18-06-2002 à 16:28:36
et puis, dans ton main, ça va pas du tout:
Code :
|
T'utilises int argc et char *argv[] en écriture, j'aurais même pas pensé que ça pourrait compiler.
ces trucs, c fait pour récupérer les arguments que t'as passé à ton exe en ligne de comande. T'as pas à aller bricoler dedant. Pourquoi tu mets des valeurs dedant !? j'comprend pas ? c quoi ces : "C:\\wrkcesar\\database\\list.txt" et "C:\\wrkcesar\\database\\" ?
Marsh Posté le 18-06-2002 à 16:35:56
el_gringo a écrit a écrit : c surement un débordement mémoire. quand tu fais un *scanf (ici, un fscanf), pour tes arguments (les derniers paramètres), tu doit mettre l'adresse, pas l'argument lui-même, donc tu vas plutot mettre :
|
Non c pas nécessaire, temp est déjà un pointeur vers une zone mémoire, par contre elle est peut être pas assez grande.
Marsh Posté le 18-06-2002 à 16:39:17
paranoidandroid a écrit a écrit :
|
tu nous fais quoi la ??
argc et argv sont utilisés pour récupérer les paramètres passés en ligne de commande, t'as pas à y accéder en écriture !!!
Marsh Posté le 18-06-2002 à 16:44:02
el_gringo a écrit a écrit : et puis, dans ton main, ça va pas du tout:
|
Je bidouille dedans pour l'executer en mode débug ...
Avec VC++6 si je fais fais F5 je m'arrête des la fin du main ... Alors c'est pour le forcer a =entrer dans le read .. en quelque sorte ..
Marsh Posté le 18-06-2002 à 16:51:51
Bah, avec VC++, tu vas dans les Setting de ton projet, onglet debug, le 3e champ de texte en partant du haut : "program arguments"
ici, tu mets C:\\wrkcesar\\database\\list.txt C:\\wrkcesar\\database\\
ça sera plus simple et vachement moins vilain !
Marsh Posté le 18-06-2002 à 16:53:23
paranoidandroid a écrit a écrit : Je bidouille dedans pour l'executer en mode débug ... Avec VC++6 si je fais fais F5 je m'arrête des la fin du main ... Alors c'est pour le forcer a =entrer dans le read .. en quelque sorte .. |
Voui mais non !
Déjà tu ne peux pas faire
Code :
|
en C.
Mais
Code :
|
Et encore, ce n'est pas suffisant : il faut que mon_pointeur_de_caractère définissent une zone mémoire libre de taille supérieure ou égale à ceux que tu veux y faire rentrer dedans.
argc et argv étant des variables réservées, je ne m'y risquerai même pas.
Marsh Posté le 18-06-2002 à 17:02:21
C est pas joli, joli
Mais le probleme principal c est que tout oubli la place pour le '\0' lorsque tu fais des malloc de chaine de caractère
Marsh Posté le 18-06-2002 à 17:45:21
MrTonio a écrit a écrit : C est pas joli, joli Mais le probleme principal c est que tout oubli la place pour le '\0' lorsque tu fais des malloc de chaine de caractère |
Je sais que c'est pas beau ...
Je m'y recolle ce soir, que du c
Marsh Posté le 18-06-2002 à 17:45:44
el_gringo a écrit a écrit : Bah, avec VC++, tu vas dans les Setting de ton projet, onglet debug, le 3e champ de texte en partant du haut : "program arguments" ici, tu mets C:\\wrkcesar\\database\\list.txt C:\\wrkcesar\\database\\ ça sera plus simple et vachement moins vilain ! |
Merci pour cette précision ...
Marsh Posté le 18-06-2002 à 20:57:22
Y'a pas une taille maximale lorsque on lit une ligne dans un fichier ... genre 256 je sais plus
Marsh Posté le 18-06-2002 à 21:11:20
Loaded 'C:\WINNT\System32\ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINNT\system32\KERNEL32.DLL', no matching symbolic information found.
The thread 0x5C0 has exited with code 57 (0x39).
The program 'E:\BTS\pti\greper\Debug\grep.exe' has exited with code 57 (0x39).
j'ai tout compris ...
Marsh Posté le 18-06-2002 à 15:45:26
Mais comment que c'est casse couille les pointeurs .. franchement je comprends que dalle, je reste une éternité sur une pauvre portion de code. Je les utilise et je sais m^^eme pas ce que ça représente ...
Comment peut t on savoir où se trouve un erreur de type mémoire .. Quand je débugue, j'ai un truc du genre , User BReakpoint called from code at 0x77f etc ... ça représente quoi par rapport a mon code ???
C'est surement très laid, c'est premier exe en C.
Est ce que vous pourriez juste me taper deux trois chtites remarques comme les erreurs a pas faire, les trucs que j'ai fais etc ..
Ce code est censé greper des mots ( qui sont contenues dans un fichier ) dans un répertoire et ses sous repertoires .. et de mettre le résultat dans un fichier resultat.txt
D'abord je tente de lire ma liste de mots pour construire un .bat qui éxécuté va remplir mon fichier resultat.txt
Je m'en sors pas du tout ..
Merci
Message édité par paranoidandroid le 18-06-2002 à 15:59:40