Cast int als byte-array in C++

Ich versuche, mit Umsetzung der LSB-lookup-Methode vorgeschlagen, die von Andrew Grant eine Antwort auf diese Frage: Position des least significant bit, das gesetzt ist

Ist es jedoch, was in einem segmentation fault. Hier ist ein kleines Programm demonstriert das problem:

#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;  
}  

Was mache ich falsch?

Ich habe gelesen, dass es nicht gute Praxis für die Verwendung von 'C-Format' - casts in C++. Sollte ich reinterpret_cast<Byte*>(value) statt? Dies führt immer noch zu einem segmentation fault, aber.

Schreibe einen Kommentar