long *blubb = 1234



  • long *Calc_crc( char *ToPatchName )
    {
    
     FILE *ToPatchFile;
     char buffer;
     long *CRC_SUM = NULL;
     long crcBuffer;
    
     ToPatchFile = fopen( ToPatchName, "r+b" );
    
     while( !feof( ToPatchFile ) )
     {
      buffer = fgetc( ToPatchFile );
      crcBuffer = buffer ^ ftell( ToPatchFile );
      CRC_SUM += crcBuffer;
     }
    
     return CRC_SUM;
    }
    
    int main ()
    {
    long CRC_AlteDatei = 7020;
    long *CRC_PatchFile = &CRC_AlteDatei;
    long *CRC_ToPatchFile;
    *CRC_PatchFile = 7020;
    
    CRC_ToPatchFile = Calc_crc( ToPatchName );
    
    if (CRC_ToPatchFile == CRC_PatchFile)
     printf("[DONE] (%ld)\n", CRC_ToPatchFile);
    else
     printf("[FAIL] (%ld)\n", CRC_ToPatchFile);
    
      printf("%ld\n%ld\n", CRC_ToPatchFile, CRC_PatchFile);
    
    return 0;
    }
    

    ein hochgenuss an code ich weiss 😉

    printf("%ld\n%ld\n", CRC_ToPatchFile, CRC_PatchFile);
    

    gibt das aus:

    7020
    6684136

    wieso 😕 , und welche -100% vorhandenen- verbesserungsvorschläge würds für den code geben 🙂

    thx



  • langweiliger thread :p 😉

    Frage 1:
    was bedeutet:

    > long* variable_abc << - meiner ansicht nach is das irgendwie so dass, wenn die zahl zu gross ist irgendwie zu nem doppelten long wird oder so - lasse mich gerne dem richtigen belehren

    Frage 2:
    und wie weisst man so nem

    > long* variable_abc <<
    einen wert zu? 😕



  • Original erstellt von <MaKo>:
    **Frage 1:
    was bedeutet:

    > long* variable_abc << - meiner ansicht nach is das irgendwie so dass, wenn die zahl zu gross ist irgendwie zu nem doppelten long wird oder so - lasse mich gerne dem richtigen belehren
    **

    Du usst dir unbedingt Pointer angucken. das long* zeigt auf eine Speicheradresse hinter der sich dein long verbirgt... mit *variable_abc bekommst du ihren Inhalt...

    Original erstellt von <MaKo>:
    **Frage 2:
    und wie weisst man so nem

    > long* variable_abc <<
    einen wert zu? 😕**

    s.o.

    variable_abc = 100;
    Das Sternchen davor bedeutet "Inhalt von"! Beim deklarieren bedeutet long
    "Zeiger auf ein long im Speicher"





  • long* CRC_PatchFile;
    *CRC_PatchFile = 7020;
    

    so?

    das führt nämlich dann zu nem Crash:

    printf("PatchFile: %ld", *CRC_PatchFile);
    


  • hast du dir schon das durchgelesen, was ich gepostet habe?
    da steht unter anderem, dass man erst speicher holen muss, auf dem man zugreifen kann:

    long a;
    long *blub = &a; //benutze den speicher, der a gehört
    *blub = 10;
    //a == 10
    
    long *blub2 = new long; //hole speicher vom free store
    *blub2 = 201;
    //und diesen speicher muss man wieder löschen!:
    delete blub2;
    

    Steht übrigens ausführlich in der FAQ, zu der ich eben diesen einen Link gepostet habe 🙄 🙂



  • okay, aber wie benutzt man sowas in if abfragen?

    if (CRC_ToPatchFile == *CRC_PatchFile)

    error C2446: '==' : no conversion from 'long' to 'long *'
    Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

    error C2040: '==' : 'long *' differs in levels of indirection from 'long'

    😞



  • if (*CRC_ToPatchFile == *CRC_PatchFile)



  • Ich empfehle dir ein Buch zu kaufen und es dann auch zu lesen.



  • habich



  • ich bin wohl zu blöd für sowas 😞
    NUN HELFT MIR SCHON!!!!!!!!



  • Du kannst anscheinend auch nicht lesen. Guck mal 4 Postings über diesem. Ein * hat gefehlt



  • omfg, jetzt muss ich mir meinen Nick registrieren weil irgendwelche kleinkinder die noch jünger als ich sind postings unter meinem nick schreiben



  • -test-


Anmelden zum Antworten