Я пытаюсь написать функцию, которая преобразует int в байт следующим образом:
int * key = convertTo8bits(255);
for(int i = 0; i<8; i++)
cout<<key[i]<<endl;
Возвращает неожиданный вывод. Массив, который он распечатывает, состоит из абсурдно больших чисел, тогда как это прекрасно работает:
int * convertTo8bits(int x)
{
int total = 0;
int key[8];
for(int i = 0; i<8; i++)
key[i] = 0;
if(total + 128 <= x)
{
key[7] = 1;
total += 128;
}
if(total + 64 <= x)
{
key[6] = 1;
total += 64;
}
if(total + 32 <= x)
{
key[5] = 1;
total += 32;
}
if(total + 16 <= x)
{
key[4] = 1;
total += 16;
}
if(total + 8 <= x)
{
key[3] = 1;
total += 8;
}
if(total + 4 <= x)
{
key[2] = 1;
total += 4;
}
if(total + 2 <= x)
{
key[1] = 1;
total += 2;
}
if(total + 1 <= x)
{
key[0] = 1;
total += 1;
}
for(int i = 0; i<8; i++)
cout<<key[i]<<endl;
return key;
}
Можете ли вы указать на мою ошибку? Thx.