Ein 4D Array definieren

  • Bei beim Borland C++ Builder kann es vorkommen, dass der Linker bei einer Array-Definition abbricht
  • double test [256][256][64][2]; // verursacht "[Linker Fehler] Fatal: Access violation. Link terminated."
    
  • stattdessen kann man folgendes verwenden
  • typedef int D4_ARRAY[256][256][64][2];
    
    D4_ARRAY *array = (D4_ARRAY *)new int*[256 * 256 * 64 * 2];
    
    (*array)[0][0][0][0] = 0; // == ((int *)array)[0] = 0;
    (*array)[0][0][0][1] = 1; // == ((int *)array)[1] = 1;
    (*array)[0][0][1][0] = 2; // == ((int *)array)[2] = 2;
    (*array)[0][0][1][1] = 3; // == ((int *)array)[3] = 3;
    (*array)[0][0][2][0] = 4; // == ((int *)array)[4] = 4;
    
    usw.
    
    // Aufruf
    ShowMessage(((int *)array)[2]);
    ShowMessage(((int *)array)[3]);
    

Schreibe einen Kommentar