Salut à tous,
je vous explique mon problème. Je réalise une fonction récursive qui cherche dans une chaine de caractère toutes les occurences d'un caractère
voici mon code :
Je ne sais pas si c'est la meilleur manière de procéder, je trouvais intéressant le fait de procéder ainsi! Allocation de la mémoire pour le tableau en fin de parcours, ensuite je le remplis.
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 void TChaine::find_char (int *position, const char s, int b, int end, int l, int uniq) { int i=b; for (;i<end;i++) { if (mChaine[i] == s) { l++; cout << "caractère présent (" << l << ") : " << i << "\n"; find_char (position, s, (i+1), end, l, uniq); *(position+l-1) = i; break; } } if (i==end) { position = new int[l]; cout << "initialisation du tableau success \n"; } }
Plusieurs questions :
1. Ca plante sur : *(position+l-1) = i;
Pour information le tableau est bien pris en compte lors de son instanciation mais plus lorsque l'on remonte dans la récursivité !?
2. Je me sert de ce tableau à l'exterieur de la fonction. Suis je obligé de desallouer la mémoire ?!
Partager