pointer array initialisieren



  • Hallo,

    ich habe in einem Programm ein array mit pointern.

    int i;
      SDL_Surface *surfaces[5];
    
      // set pointers to NULL
      for(i=0; i<5; i++)
      {
        surfaces[i] = NULL;
      }
    

    Werden die pointer so korrekt auf NULL gesetzt?
    Kann man das auch direkt angeben, ohne die schleife?

    würde das so gehen?

    SDL_Surface *surfaces[5] = {NULL};
    

  • Mod

    Auf alle Fragen ist die Antwort Ja.



  • engitiny schrieb:

    würde das so gehen?

    SDL_Surface *surfaces[5] = {NULL};
    

    NULL ist nichts anders als 0.



  • engitiny schrieb:

    Kann man das auch direkt angeben, ohne die schleife?

    memset (surfaces, 0, sizeof (surfaces));


  • Mod

    -lowbyte- schrieb:

    engitiny schrieb:

    würde das so gehen?

    SDL_Surface *surfaces[5] = {NULL};
    

    NULL ist nichts anders als 0.

    Nein, ist es nicht. Du denkst gerade an C++. In C ist das in aller Regel so etwas wie (void*)0 .



  • SeppJ schrieb:

    -lowbyte- schrieb:

    engitiny schrieb:

    würde das so gehen?

    SDL_Surface *surfaces[5] = {NULL};
    

    NULL ist nichts anders als 0.

    Nein, ist es nicht. Du denkst gerade an C++. In C ist das in aller Regel so etwas wie (void*)0 .

    Und das ist 0



  • Depp. Natürlich nicht.



  • SeppJ schrieb:

    -lowbyte- schrieb:

    engitiny schrieb:

    würde das so gehen?

    SDL_Surface *surfaces[5] = {NULL};
    

    NULL ist nichts anders als 0.

    Nein, ist es nicht. Du denkst gerade an C++. In C ist das in aller Regel so etwas wie (void*)0 .

    Na klar sorry. Ist ein typenloser Zeiger auf 0.



  • Ne, es ist ein eiger vom Typ void * auf NULL . *scnr*


Log in to reply