Bonjour,
Je suis en train de passez au C sans trop de soucis. actuellement j'ai réussi a retranscrire une partie d'un vieux programme pascal (lazarus) sans trop de soucis.
Mais j'ai une erreur de segmentation sur une partie de mon programme. que j'ai réussi a isoler. Voici le code en question.
J'ai donc tenter de le compiler avec les options suivantes et le debugger avec GDB. Voici les commande utiliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { int k = 3; int lg; char *img = ""; char *tmp = ""; sprintf(tmp, "%d", k); lg=strlen(tmp); switch (lg) { case 1 : sprintf(img,"000000%s",tmp); break; case 2 : sprintf(img,"00000%s",tmp); break; case 3 : sprintf(img,"0000%s",tmp); break; case 4 : sprintf(img,"000%s",tmp); break; case 5 : sprintf(img,"00%s",tmp); break; case 6 : sprintf(img,"0%s",tmp); break; case 7 : img = tmp; break; } printf("nombre %s ",img); }
le résultat donne ceci. On retrouve bien l'erreur mais une autre aussi !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 gcc -g test.c -o test gdb test
Je travail sous ubuntu 14.04.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Program received signal SIGSEGV, Segmentation fault. 0xb7e80464 in __GI__IO_default_xsputn (f=0xbfffed80, data=0xbfffed3f, n=1) at genops.c:475 475 genops.c: Aucun fichier ou dossier de ce type.
Je suis débutant en C. Il y a t il une erreur de débutant que je ne vois pas ??
Merci de votre aide
Partager