Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    4

    (Visual C++) passaggio array bidimensionale a funzione

    Salve,
    sono nuovo ed ho pronta una domanda alla quale non riesco a trovare risposta.
    Sto completando un'applicazione in Visual C++ con Visual studio 2008.

    Ho un array di int bidimensionale che devo passare ad una funzione di un'altra classe e non riesco nell'impresa.
    In realtà il programma viene compilato ed eseguito regolarmente, solo che la funzione ricevente un solo elemento dell'array.

    l'array l'ho definito come segue:
    int myArray[10][2]={{1, 2},{3,4}};
    definendolo di dimensione 10 anche se poi ne ho valorizzate solo le prime due.

    la chiamata alla funzione:
    myClass.nomeFunzione(myArray);

    la definizione della funzione:
    void myClass::nomeFunzione(int inAttay[10][2])

    Se controllo con il debug, l'array myArray alla chiamata è ben valorizzato, mentre all'interno della funzione "nomeFunzione" è come se fosse di dimensioni [1][2] riportando i primi due valori dell'array trasmesso.

    Ho cercato si essere semplice e chiaro non so se ci sono riuscito.

    Ringrazio chiunque avesse qualche consiglio a riguardo.

  2. #2
    Ciao!
    Non sono un esperto di c++, lo sto studiando da poco però forse posso aiutarti.

    Mi pare di aver letto nel libro che le funzioni non possono creare passaggi di array, forse è per questo che te ne legge soltanto il primo elemento.

    pero' potresti provare a usare i puntatori:

    void display(int *num)

    quì una guida

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    4
    Ringrazio per la risposta.
    quello evidenziato è un aspetto che ho provato a considerare, anche se inserendo "l'asterisco" prima della variabile sulla funzione chiamata, ricevo il seguente errore dal compilatore: error C2664: ....: cannot convert parameter 1 from 'int (*)[10][2]' to 'int *[][2]'
    Ho provato anche ad inserire un "&" prima della variabile sulla chiamata, ma non lo compila ugualmente.
    Ho visto anche la guida indicata, ma nell'esempio non mi sembra utilizzi l'asterisco...

    Attendo nuove news
    Grazie nuovamente

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 © 2024 vBulletin Solutions, Inc. All rights reserved.