Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    errore codice per riallocare vettore in matrice

    Ciao a tutti,
    ho bisogno di riallocare un vettore monodimensinale (vector) in un vettore bidimansionale (matrix), ma il seguente codice restituisce errore di indexoutOfBounds. Cosa c'è che non va?


    double[][] matrix = new double[X][Y];

    for (int i = 0; i < Y; i++) {
    for (int j = 0; j < X; j++) {
    matrix[j][i] = vector[j + i*Y];
    }
    }



    Dove sta l'errore? E' probabilmente una banalità e me ne scuso. Ma è un paio di giorni che ci sbatto la testa!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Evidentemente stai sconfinando sul vettore.

    Se, ad esempio, la matrice ha dimensione 3x4, all'ultimo passo avrò:
    codice:
    j = 2
    i = 3
    e vai ad indicizzare l'elemento del vettore
    
    j + i*4 --> 2 + 3*4 = 14
    Ce l'hai l'elemento 14 nel vettore? (ovvero, il vettore è di 15 elementi?)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.