gpt4 book ai didi

c++ - 将手动编写的数组分配给之前创建的变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:01 26 4
gpt4 key购买 nike

如何将手动编写的数组分配给之前创建的变量。

例如:
啊.h

class PredefinedMatrices {
public:
PredefinedMatrices();

unsigned char getSBoxValue(unsigned char hexNumber) const;

private:
unsigned char sbox[256];
};

交流

PredefinedMatrices::PredefinedMatrices() {
sbox[256] = //Sure it won't work
{
0x34, 0x5b,
0x93, 0xc2
};
}
unsigned char PredefinedMatrices::getSBoxValue(unsigned char hexNumber) const {
return sbox[hexNumber];
}

直接在类中赋值是行不通的。
这样做是行不通的:

unsigned char *matrice;
matrice = new unsigned char[256]{...};

我不想将临时矩阵的内存复制到我需要的矩阵中,因为会增加分配时间和内存消耗。

编辑:手写数组是AES加密的S-Box。我可以动态计算它,但我不想将处理器周期浪费在一些常量上,而且我们知道它的值。

最佳答案

想一想,您应该逐项填充数组,或者使用缓冲区并从中复制数据。假设 C++ 支持这样的语法:

unsigned char myBuffer[256];
myBuffer = { 1, 2, ... };

那你认为编译器除了temp buffer和memcpy之外还会做其他事情吗?如果你逐项填充数组,你有更大的代码会影响你的执行速度,所以唯一有效的方法是临时缓冲区 + memcpy。

关于c++ - 将手动编写的数组分配给之前创建的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12880422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com