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.


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);
}
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
 
gcc -g test.c -o test
gdb test
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
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 travail sous ubuntu 14.04.
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