1。wchar *p = wcsrchr(szFilePath, L'.');
2。p++;
3。if (p == NULL)
4。 return;
5。printf("%ws\n", p);
上面的代码看着貌似没有问题。但是当第1句执行完之后,如果p为NULL,那么第2句执行后,p就为1。第3句判断就不成立。因此执行第5句的时候,由于指针值为1,而0-64KB都是NULL指针空间,所以崩溃。正确的代码:
1。wchar *p = wcsrchr(szFilePath, L'.');
2。if (p == NULL)
3。 return;
4。p++;
5。printf("%ws\n", p);
IsBadReadPtr(ptr, dwOffset)