Byte Array in struct vergleichen



  • Hallo Jung,
    habe hier eine kleine Problem. Ich habe mir ein Struct definiert mit folgender Struktur

    struct Value
    {
    BYTE ID[4];
    BYTE Data[8];
    };
    Später in meinem Programm habe ich eine Member Variable und eine lokale Variable und wie ID mit einander vergleichen.

    if(m_sValue.ID ==sValue.ID)
    Leider ist das immer fals. Der Inhalt von ID ist aber bei beiden gleich.



  • Du vergleichst mit

    if(m_sValue.ID ==sValue.ID)
    

    auch nicht den Inhalt deines Byte-Arrays, sondern die Adressen. Diese sind auch nicht identisch. Du musst jedes Element des Arrays einzeln vergleichen.

    if(m_sValue.ID[0] == sValue.ID[0] &&
       m_sValue.ID[1] == sValue.ID[1] &&
       ...)
    

    Solltest dir dafür eine Funktion basteln.



  • Hat nichts mit MFC zu tun.
    Hat nichts mit C++ zu tun.

    if( memcmp(m_sValue.ID,sValue.ID,sizeof m_sValue.ID) ) 
      puts("ungleich");
    else
      puts("gleich");
    

Anmelden zum Antworten