Hello World


J'ai codé une fonction qui affiche certaine info à l'ecran dont le proto est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
void DisplayText(char * szStr, long xpos=100, long ypos=100 );

j'ai envoyé un paramètre qui me provoque un bad ptr:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
char* mtrrdump = (char* )malloc(4096);
*mtrrdump = '\0';
sprintf(&mtrrdump[strlen(mtrrdump)],"MTRR %i: 0x%08X - 0x%08X (%x = %s)\n",i,base,~mask|base,type,types[type]);
char bufI[1000];
sprintf(bufI,mtrrdump);
DisplayText(bufI, xpos, ypos+=height);
Dans DisplayText le moment ou le bad ptr est genere:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
WCHAR szbuff[200] = {0};
swprintf(szbuff, L"%S", szStr);
En faisant du pas à pas avant sprintf tout est normal, lorsque je verifie szStr à la bonne valeur, mais après l'execution de cette ligne szbuff a bien la valeur de szStr mais szStr maintenant est un bad ptr, alors que normalement il doit conserver sa valeur.

Auriez vous une idées SVP?

Merci