Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente bannato
    Registrato dal
    Jul 2007
    Messaggi
    66

    [C] passaggio di matrice a funzione

    ciao a tutti...come si fa a passare una matrice a una funzione?

    ho prvato a fare

    int miaF(int Matrix[][])
    {
    ...
    }

    e mi dice
    invalid use of array with unspecified bounds

    Se faccio

    int miaF(int **Matrix){}
    e la evoco con

    MiaF(MiaMatrice)
    mi dice
    [Warning] passing arg 1 of `Hin' from incompatible pointer type

    ma allora, sta matrice come la devo passare?

    In genere, una array di dimensione n, come va passato?

    grazie e ciao...

  2. #2
    Ciao!
    Non si può passare ad una funzione un array per valore ne tanto meno una matrice...
    Devi usare i puntatori.
    Nel caso delle matrici o array il nome senza le parentesi quadre è già il puntatore al primo elemento.

  3. #3
    Utente bannato
    Registrato dal
    Jul 2007
    Messaggi
    66
    Originariamente inviato da Gianni000
    Ciao!
    Non si può passare ad una funzione un array per valore ne tanto meno una matrice...
    Devi usare i puntatori.
    Nel caso delle matrici o array il nome senza le parentesi quadre è già il puntatore al primo elemento.
    scusami, ma non hai detto nulla che già non sapevo...
    praticamente, come accedo agli elementi di una matrice passata x riferimento?

  4. #4

    Re: [C] passaggio di matrice a funzione

    Nel caso di una matrice a due dimensioni devi specificarne almeno una (l'ultima).

    Pertanto se la matrice sarà dichiarata così

    int Matrix[20][10];

    La definizione della funzione sarebbe :
    int miaF(int Matrix[][10])
    {
    ...
    }
    oppure
    int miaF(int Matrix[20][10])
    {
    ...
    }

    Se fosse stata a 3 dimensioni :

    int Matrix[5][20][10];

    La definizione della funzione sarebbe :
    int miaF(int Matrix[][20][10])
    {
    ...
    }
    oppure
    int miaF(int Matrix[5][20][10])
    {
    ...
    }

    e così via...
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

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.