69,371
社区成员
发帖
与我相关
我的任务
分享
#ifdef ARRAY_DEBUG
static char protect0[1024]={0};
static ARRAY* in_desk_offline_users_str=NULL;
static char protect1[1024]={0};
if(in_desk_offline_users_str==NULL){
in_desk_offline_users_str = in_desk_offline_users;
getTimeStr(tstr1);
LOG_ERROR("now %s, %p(%p) vs %p(%p), sign=%s, sign1=%s",
tstr1, in_desk_offline_users_str, &in_desk_offline_users_str,
in_desk_offline_users, &in_desk_offline_users,
in_desk_offline_users->sign, in_desk_offline_users_str->sign
);
}else if(in_desk_offline_users_str != in_desk_offline_users){
int i;
char *cc = (char*) in_desk_offline_users;
getTimeStr(tstr);
LOG_ERROR("now %s, from %p(%p) to %p[addr=%p]", tstr, in_desk_offline_users_str, &in_desk_offline_users_str, in_desk_offline_users, &in_desk_offline_users);
LOG_ERROR("in_desk_offline_users_str=%p, sign=%s", in_desk_offline_users_str, in_desk_offline_users_str->sign);
exit(111);
}
#include <time.h>
#include <stdlib.h>
#include <windows.h>
int main() {
int a,b[11];//本来是b[10],为判断哪句越界,故意声明为b[11]
srand((unsigned int)time(NULL));//按两次F11,等黄色右箭头指向本行时,调试、新建断点、新建数据断点,地址:&b[10],字节计数:4,确定。
while (1) {//按F5,会停在下面某句,此时a的值为10,b[10]已经被修改为对应0..4之一。
b[(a=rand()%11)]=0;
Sleep(100);
b[(a=rand()%11)]=1;
Sleep(100);
b[(a=rand()%11)]=2;
Sleep(100);
b[(a=rand()%11)]=3;
Sleep(100);
b[(a=rand()%11)]=4;
Sleep(100);
}
return 0;
}