Bonjour,
Voici un extrait simplifié de mon code:
Je code des dissecteurs wireshark et à chaque fois que je ferme l'application j'ai droit à une pop-up d'erreur disant que "L'instruction à "0xXXXXXX" emploie l'adresse mémoire "0xYYYYYY". La mémoire ne peut pas être "read""
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 void main (...) { char *format = ""; mafonction(format); } void mafonction(char *format) { if(une condition) { sprintf(format,"Début de ma chaine") } else { switch(i) //i est une variable que j'ai récupéré avant, mais qui n'est pas importante { case 1: sprintf(format,"%s x1", format) break; case 2: sprintf(format,"%s x2", format) break; case 3: sprintf(format,"%s x3", format) break; } } }
J'ai bien compris qu'il s'agissait de mon pointeur, mais je ne vois pas trop comment éviter cette erreur. Surtout quand dans un autre fichier j'utilise la même méthode et cela marche très bien.
Après de nombreuses manipulations j'en suis arrivé à la conclusion que c'est la phase de concaténation qui fait planter, seulement j'ai pour contrainte de ne pas utiliser strcat, du coup je ne vois pas trop comment je peux faire?
Auriez-vous une idée?
Merci d'avance
Partager