小编Yan*_*ick的帖子

C++ memcpy()棘手的使用,需要行为理解

为了修复旧程序而进行反编译会很痛苦.

因为我是C#开发人员,所以我不明白有些奇怪的事情.我需要一个C++技巧专家来帮助我理解"memcpy()"的行为.

这是我玩的:

unsigned char sdata[] =  { 0x54, 
                           ... many values (=4100) ..., 
                           0x00 };
Run Code Online (Sandbox Code Playgroud)

然后

unsigned char BF_PTransformed[4*18] = { 0xC6, 
                                    ... many values (=72) ..., 
                                        0x7B };
Run Code Online (Sandbox Code Playgroud)

和

struct BLOWFISH_CTX 
{
  unsigned long P[16 + 2];
  unsigned long S[4][256];
};
Run Code Online (Sandbox Code Playgroud)

这是memcpy()电话:

void BFInit() 
{
    BLOWFISH_CTX* ctx = &this->BlowfishContext; 

    memcpy((void*)ctx->P, this->BF_PTransformed, 18*4);
    memcpy((void*)ctx->S, (void*)this->sdata, 0x100*4*4);
}
Run Code Online (Sandbox Code Playgroud)

问题

我不明白这是如何使用更高的字节数而不是数组目标长度.那是关于数据类型的吗?

有人可以解释它,以便C#开发人员可以理解吗?

(甚至不要提到Blowfish这个词.这个"特殊"实施的2天让我生病了)

c c++ memcpy

1
推荐指数
2
解决办法
813
查看次数

标签 统计

c ×1

c++ ×1

memcpy ×1