| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 305 人关注过本帖
标题:晕了,怎么回事啊
只看楼主 加入收藏
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
结帖率:96.77%
收藏
已结贴  问题点数:20 回复次数:2 
晕了,怎么回事啊
程序代码:
void F_func(bool In[32],const bool Ki[48])
{
     static bool  MR[48];
     Transform(MR,In,Extension_Table,48);//扩展成48位
     Xor(MR,Ki,48);//与子密钥进行异或运算
     S_func(In,MR);//S盒代换,处理后变成32位
     Transform(In,In,P_Table,32);//P置换
}
void DES(char Out[8],char In[8],const bool Ki[48],bool Type)
{
     static bool M[64],tmp[32],*Li=&M[0],*Ri=&M[32];
     ByteToBit(M,In,64);
     Transform(M,M,IP_Table,64);
     if(Type==ENCRYPT)
     {
         for(int i=0;i<16;i++)
         {
             memcpy(tmp,Ri,32);
             F_func(Ri,Ki[i]);//提示这里出错了,怎么回事?
             Xor(Ri,Li,32);
             memcpy(Li,tmp,32);
         }
     }
     else
     {
         for(int i=15;i>=0;i--)
         {
             memcpy(tmp,Li,32);
             F_func(Li,Ki[i]);
             Xor(Li,Ri,32);
             memcpy(Ri,tmp,32);
         }
     }
     Transform(M,M,IP1_Table,64);
     BitToByte(Out,M,64);
}
错误提示:
图片附件: 游客没有浏览图片的权限,请 登录注册
  我只是把代码出错的地方弄出来了,赶紧给看看哪里错了,急啊!
搜索更多相关主题的帖子: color 
2012-11-28 18:10
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:20 
void F_func(bool In[32],const bool Ki[48])
使用数组作为参数不是这么做的吧,这样括号内还是被无视,当做指针传递;
然后你的函数调用传入的是一个数,因此报错了
建议你看看数组作为函数参数的使用方法;一般为fun(int a[],int n),n表示数组大小

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-11-28 18:54
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:0 
呵呵 谢谢啦,我犯晕了。。。。又~

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-28 21:37
快速回复:晕了,怎么回事啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026662 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved