Я пытаюсь скопировать один массив («in»), содержащий 160 элементов в другой массив («temp»), который имеет 16 элементов, используемых для цикла. В каждом раунде в цикле одна строка будет скопирован из массива из 160 элементов в новый массив, который имеет 16 элементов. Я использую этот, но это неверно.Копирование содержимого массива по строкам
for (int i = 0; i < ROWSS; i++)
{
std::array<unsigned char,16> temp = in[i*16];
функция:
InputDifferences(unsigned char * in, unsigned char * result,unsigned char * xi)
{
unsigned char yi[16]; unsigned char temp[160]; int index;
/for(int x=0 ; x<ROWS ; x++)
{
//unsigned char temp[160] = in[x*16];
//std::array<unsigned char,160> B = in;
for (int i = 0; i < ROWSS; i++)
{
std::cout << "\nTables:\n";
for(int a = 1; a < ROUND; a++)
{
std::cout << "\nROUNDS:\n";
for (int j = 0; j < COLS; j++)
{
yi[i*COLS+j] = xi[i*COLS+j]^(a); //x (xor) 1,2,3.. and find input differences
index = temp[i*COLS+j]^temp[yi[i*COLS+j]]; // s(x) (xor) s(y) find output differences
result[a*16+index]++; // to find how many appears in each box
}
}
std::cout << "\nTry :" << i;
showMatrix2(result);
}
//}}
результат будет как этот
for i =0 temp[16] = in[0..15]
for i = 1 temp[16] = in[16..31]
и т. Д. Не могли бы вы мне помочь?
'temp [16]' выходит за пределы диапазона, так что не ожидайте этого! – MikeCAT
Да, я знаю, как это можно сделать? Знаете ли вы способ, не используя другие петли? – user5670635
@Sossenbinder Я не могу использовать два массива 2d, потому что вся программа работает в [160], и это одномерный знак без знака . Я не могу использовать любые другие петли, потому что этот цикл имеет внутренние петли – user5670635