Hello World
J'ai codé une fonction qui affiche certaine info à l'ecran dont le proto est:
void DisplayText(char * szStr, long xpos=100, long ypos=100 );
j'ai envoyé un paramètre qui me provoque un bad ptr:
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:
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
Partager