gcc /02能运行cl /02就非法操作
adsmkeyh(8);
adsmkeyh(4);
adsmkeyh(2);
adsmkeyh(1);
for(i=1;i<7;i++)
{
if (i==1) //循环开始时有
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(3);
addsmkeyh(9);
addsmkeyh(5);
}
if(i==2) //循环开始时有
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(10);
}
if(i==4) //循环开始时有
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(6);
addsmkeyh(12);
}
if(i==3) //循环开始时没有,在i=1计算完后有
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(11);
addsmkeyh(7);
addsmkeyh(15);
}
if(i==5) //循环开始时没有,在i=1计算完后有
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(13);
}
if(i==6) //循环开始时没有,在i=4计算完后有
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(14);
}
}
改成下面这样,所有计算在循环开始时都有了
for(i=1;i<7;i++)
{
if (i==1)
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(3);
addsmkeyh(9);
addsmkeyh(5);
addsmkeyh(11);
addsmkeyh(7);
addsmkeyh(15);
addsmkeyh(13);
}
if(i==2)
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(10);
}
if(i==4)
for(iterh=key_recn2h.begin();iterh != key_recn2h.end(); iterh++)
{
addsmkeyh(6);
addsmkeyh(14);
addsmkeyh(12);
}
}
页:
1
[2]