Ta ligne :
engine = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
ne fait pas ce que tu penses qu'elle fait. Elle ne copie la chaine de droite dans le buffer alloué à la ligne précédente ; elle fait simplement pointer le pointeur "engine" vers la chaine statique "<?xml version=\"1.0\" encoding=\"UTF-8\"?>". Donc après cette instruction le buffer alloué à la ligne précédente est perdu, et engine pointe vers une zone mémoire que tu n'as pas le droit de modifier.
Le strcpy() qui suit va donc écrire des données dans une zone que tu n'as pas le droit de modifier.
La solution a été donnée par Flob91.
Partager