Anders als in C liegen Javas mehrdimensionale Arrays nicht in einem Stück im Speicher. C kennt (intern) gar keine mehrdimensionalen Arrays, bzw. unterscheiden sich diese (intern) nicht von eindimensionalen. Und so muss man das dann auch beim Zugriff aus Java heraus nachbauen:
1 2 3 4 5 6 7 8 9 10 11 12 |
// pseudo-mehrdimensional byte[] oneDimensional = new byte[rowCount * colCount]; // ... // Transformation in ein echtes mehrdimensionales Array: byte[][] twoDimensional = new byte[rowCount][colCount]; for (int i = 0; i < rowCount; i++) { for (int j = 0; j < colCount; j++) { twoDimensional[i][j] = oneDimensional[i * colCount + j]; } } |