bonjour

au bout d'un moment d'utilisation, mon programme plante.

je suppose que celà vient d'un problème d'allocation de mémoire

voici le principe de mon code :

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 fonctionX (char ** chaine) {
// traitement
// ...
 
// le but ici est de supprimer le premier caractère de la chaîne
(*chaine)++;
 
}
 
void main (void) {
 
char * Trame1 = (char*) malloc(10000*sizeof *Trame1);
 
do {
// traitement
// ...
fonctionX(&Trame1 );
 
} while (conditionY);
Je me dit qu'à force de décaller l'adresse de ma chaine, j'arrive dans une zone mémoire non allouée et que mon programme plante à ce moment là.

est ce possible ?

est ce que je peux résoudre mon probleme en effectuant un realloc dans "fonctionX" ?

quelle est la syntaxe exacte pour la réalocation d'une chaine à partir de son pointeur (si je suis pas clair, comment réallouer "chaine" dans ma fonction "fonctionX") ?

merci pour vos réponses !