empiler autour de la variable ... a été corrompu

J'ai une fonction simple qui écrit des données dans un nouveau fichier. Il fonctionne, et le fichier est écrit, mais j'obtiens l'erreur mentionnée ci-dessus pendant le débogage dans MSVS Express 2013.

void writeSpecToFile(const char *fname); //in header file.

char myChar [20];
sprintf(myChar, "aa%03daa%daa", i1, i2);
const char* new_char = myChar;
writeSpecToFile(myChar);

Comme on le voit, j'ai simplement insérer des variables dans une chaîne de caractères en utilisant sprintf (fonctionne très bien). Maintenant si je passe myChar ou new_char, il me donne toujours l'erreur de corruption.

Ce qui s'est passé?

source d'informationauteur student1