Bonjour à tous,
Alors voilà j'ai un petit soucis. J'essaye de créer un programme qui déplace un paramètre sur une chaine qui fait deux fois la longueur de ce paramètre. Et à chaque déplacement de la taille d'un espace la première lettre du paramètre doit passer en dernière.
Ex:
hello
elloh
llohe
lohel
ohell
hello
Bien entendu le déplacement s'effectue sur une seule ligne. Bref pour l'instant je cherche déjà à gérer le déplacement du paramètre. Pour faire en sorte que le mot se déplace sur deux fois sa longueur. Mais à chaque fois que je compile et que j’exécute ça m'affiche segmentation fault. Je n'arrive pas à en comprendre la raison.
Le programme est le suivant (juste pour mettre le déplacement du mot):
Sachant que le my_putchar est forcément bon.
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
35 #include <stdlib.h> void main(int argc, char **argv) { int lengh; char *str; int lengh2; lengh = (2 * my_strlen(argv[1])); lengh2 = (my_strlen(argv[1])); str = malloc(lengh); my_movement(str, lengh, lengh2); } int my_movement(char *str, int lengh, int lengh2) { int i; i = 0; while(i + lengh2 < lengh) { my_putchar(' '); i++; my_putstr(str); } } void my_putstr(char *str) { while (*str != '\n') { my_putchar(*str); str++; } }
Quelqu'un aurait-il une idée de mon erreur ? merci d'avance.
Partager