Я пытаюсь использовать метод поиска LSB, предложенный Эндрю Грантом в ответе на этот вопрос: Позиция младшего значащего бита, который установлен
Однако это приводит к ошибке сегментации. Вот небольшая программа, демонстрирующая проблему:
#include <iostream>
typedef unsigned char Byte;
int main()
{
int value = 300;
Byte* byteArray = (Byte*)value;
if (byteArray[0] > 0)
{
std::cout<< "This line is never reached. Trying to access the array index results in a seg-fault." << std::endl;
}
return 0;
}
Что я делаю не так?
Я читал, что использование C-Style в C ++ не является хорошей практикой. Должен ли я использовать reinterpret_cast<Byte*>(value)
вместо этого? Это по-прежнему приводит к ошибке сегментации.