您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> isalphanumint _C 数据溢出类型

isalphanumint _C 数据溢出类型

来源:网络整理     时间:2016/7/14 22:59:34     关键词:

关于网友提出的“ isalphanumint _C 数据溢出类型”问题疑问,本网通过在网上对“ isalphanumint _C 数据溢出类型”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: isalphanumint _C 数据溢出类型
描述:

本帖最后由 x363635334 于 2012-08-05 12:08:34 编辑


char* s=new char[1024];  int cb=0;
ReadProcessMemory(hProcess,(LPVOID)dwAddr,&s[cb],1,&dwNumOfBytes);
if(s[cb]<0 || s[cb]>255)
Sleep(1);//0x90满足于此
if(isalnum(s[cb]))cb++;//...崩溃

一次读一个BYTE
可是当s[cb]读赋值为0x90时 isalnum()内部断言 _ASSERTE((unsigned)(s[cb] + 1) <= 256);失败   
我看它0x90满足了>255的条件 可是0x90才144啊
没转过弯,在线等啊
解决方案1:

此函数是按照无符号整形而不是无符号字符型处理

解决方案2:

unsigned(0x90+1) = 0xFFFFFF91
0xFFFFFF91 > 256

解决方案3:

if(s[cb]<0 || s[cb]>255)
    Sleep(1);
char型0x90是满足<0吧,有符号数为-111.


以上介绍了“ isalphanumint _C 数据溢出类型”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2645950.html

相关图片

相关文章