Bonjour, je souhaiterais faire un code qui permette de trouver un caractère bien précis dans un tableau de caractères à deux dimensions.
J'ai effectué une première tentative où j'ai tout d'abord rempli mon tableau avec de multiples boucles for (remplir mon tableau dès sa déclaration aurait été beaucoup plus rapide mais tant pis). Puis j'ai crée une fonction qui, j'espérais, allait me donner l'indice (ou numéro) de la ligne où se trouve le caractère en sachant que je recherche le caractère 'R' qui signifie pion Rouge. A terme, le but de ce programme sera de trouver l'indice de la ligne où se trouvent différents pions sur un plateau de jeu.
Lorsque j'exécute le programme, il m'affiche le tableau (jusqu'ici, rien d'anormal) mais il m'affiche ensuite "erreur de segmentation (core dumped)".
Je ne sais pas comment résoudre ce problème.
Je remercie toute personne qui pourrait m'éclairer.
h.c
Code c : 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 #include <stdio.h> int Recuperation_indice_ligne_pion_rouge(char ligne[][8], int nligne, int ncolonne); int main(void) { char tableau[3][8]; int i, j; /* Remplissage du tableau */ tableau[0][0] = '|'; for (j = 1; j <= 2; j++) { tableau[0][j] = '.'; } tableau[0][3] = 'p'; tableau[0][4] = '.'; tableau[0][5] = '|'; tableau[0][6] = '.'; tableau[0][7] = '|'; for (j = 0; j <= 1; j++) { tableau[1][j] = '|'; } for (j = 2; j <= 3; j++) { tableau[1][j] = '.'; } tableau[1][4] = 'R'; for (j = 5; j <= 6; j++) { tableau[1][j] = '.'; } tableau[1][7] = '|'; tableau[2][0] = '|'; tableau[2][1] = '.'; tableau[2][2] = 'p'; for (j = 3; j <= 5; j++) { tableau[2][j] = '.'; } for (j = 6; j <= 7; j++) { tableau[2][j] = '|'; } /* ----------------------------------------- */ /* Affichage du tableau */ for (i = 0; i <= 2; i++) { for (j = 0; j <= 7; j++) { printf("%c", tableau[i][j]); } printf("\n"); } /* ----------------------------------------- */ printf("%d", Recuperation_indice_ligne_pion_rouge(tableau, 3, 8)); printf("\n"); return 0; } int Recuperation_indice_ligne_pion_rouge(char ligne[][8], int nligne, int ncolonne) { int indice_ligne; int indice_colonne; for (indice_colonne = 0; indice_colonne < ncolonne; indice_colonne++) { while ( ** (ligne + (indice_ligne * 8) + indice_colonne) != 'R') { indice_ligne++; } } return indice_ligne; }
Partager