下的一段代码,在BCB怎是报错

tccsdn 2003-09-12 08:22:21
void S_func(bool Out[32], const bool In[48])
{
for(char i=0,j,k; i<8; i++,In+=6,Out+=4)
{
j = (In[0]<<1) + In[5];
k = (In[1]<<3) + (In[2]<<2) + (In[3]<<1) + In[4];
ByteToBit(Out, &S_Box[i][j][k], 4);
}
}

提示不能改变一个const对象的值,是下的一个算法的代码,看又看不懂,请大家帮帮忙
...全文
21 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tccsdn 2003-09-12
  • 打赏
  • 举报
回复
to GeoPhoenix(天鸽) 不行呀
光标停在for(char i=0,j,k; i<8; i++,In+=6,Out+=4) 处,是In+=6的问题
In在上面是用const修饰的呀
jishiping 2003-09-12
  • 打赏
  • 举报
回复
void S_func(bool Out[32], const bool In[48])
改成
void S_func(bool* Out, const bool* In)
就可以了。
GeoPhoenix 2003-09-12
  • 打赏
  • 举报
回复
看看下面的如何?
void S_func(bool Out[32], const bool In[48])
{
for(char i=0,j,k; i<8; i++,In+=6,Out+=4)
{
j = In[0]*2 + In[5];
k = In[1]*8 + In[2]*4 + In[3]*2 + In[4];
ByteToBit(Out, &S_Box[i][j][k], 4);
}
}
tccsdn 2003-09-12
  • 打赏
  • 举报
回复
呵呵,不好意思,误操作,还没打完就提交了, 由于看不懂那加密算法的代码,怕该动了代码的原意就变了,上面那位如果有兴趣请留下邮箱吧,我把代码发给你帮忙看看,这代码网上到处有的,我也就不贴出来了,对于调试不是很方便
tccsdn 2003-09-12
  • 打赏
  • 举报
回复
多谢各位的帮助,不是不敢改,
Robin 2003-09-12
  • 打赏
  • 举报
回复
:>
jishiping 2003-09-12
  • 打赏
  • 举报
回复
S_Box 是什么东西啊,还有 ByteToBit 这个函数是怎么描述的(函数原型)?错误应该在
ByteToBit(Out, &S_Box[i][j][k], 4); 其它的代码看不出什么问题。
Thor_Cascades 2003-09-12
  • 打赏
  • 举报
回复
bool* NonConstIn = const_cast<bool*>(In);
操作这个NonConstIn就行了
Thor_Cascades 2003-09-12
  • 打赏
  • 举报
回复
使用const_cast把In的常量性质去掉
dongyangzong 2003-09-12
  • 打赏
  • 举报
回复
不敢把const去掉?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧