NULL指针如何避开检测引起程序崩溃

来源:互联网 发布:淘宝网金丝绒棉服女 编辑:程序博客网 时间:2024/05/08 20:24

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)

原创粉丝点击