Pagina 1 di 1

[risolto]output funzione in c

Inviato: martedì 26 febbraio 2008, 19:13
da Giuto
Sto studiando un po di C.
Adesso vi espongo il mio problema.
Non riesco a capire come dichiare una funzione che da in output una matrice di interi.
ho provato con

Codice: Seleziona tutto

int[4][4] nomefunzione(variabili)
ma sembra essere sbagliato.
Sapete dirmi come si dichiara?
Grazie e ciao

Re: output funzione in c

Inviato: martedì 26 febbraio 2008, 19:45
da gray_fox
nella funzione basta che metti come parametro la matrice, per esempio:

Codice: Seleziona tutto

void funzione(int a[][DIM], int n) {
...
}
Come vedi il numero di colonne bisogna mettercelo.
Ricordati che gli array e le matrici vengono passati in reference.

Qui puoi approfondire:
http://wwwteor.mi.infn.it/~pernici/lezi ... /array.htm

Re: output funzione in c

Inviato: martedì 26 febbraio 2008, 19:51
da Giuto
Grazie per la risposta ho risolto  ;D

Re: [risolto]output funzione in c

Inviato: martedì 26 febbraio 2008, 19:53
da gray_fox
Di niente  :D

Re: [risolto]output funzione in c

Inviato: mercoledì 27 febbraio 2008, 15:21
da VonNeumann
Giuto ha scritto: Sto studiando un po di C.
Adesso vi espongo il mio problema.
Non riesco a capire come dichiare una funzione che da in output una matrice di interi.
ho provato con

Codice: Seleziona tutto

int[4][4] nomefunzione(variabili)
ma sembra essere sbagliato.
Sapete dirmi come si dichiara?
Grazie e ciao
assolutamente sbagliato!!
per fare una cosa del genere devi usare i puntatori!!!! dichiari una funzione che restituisce un puntatore ad interi ..ed in uscita ai il puntatore alla struttura matrice, che poi nel programma potrai usare con l'aritmetica degli array!
Non mi ricordo bene...ma non credo si possa definire come parametro di ingresso un array...io ho sempre usato i puntatori per queste cose!

Re: [risolto]output funzione in c

Inviato: mercoledì 27 febbraio 2008, 15:32
da gray_fox
VonNeumann ha scritto:
Giuto ha scritto: Sto studiando un po di C.
Adesso vi espongo il mio problema.
Non riesco a capire come dichiare una funzione che da in output una matrice di interi.
ho provato con

Codice: Seleziona tutto

int[4][4] nomefunzione(variabili)
ma sembra essere sbagliato.
Sapete dirmi come si dichiara?
Grazie e ciao
assolutamente sbagliato!!
per fare una cosa del genere devi usare i puntatori!!!! dichiari una funzione che restituisce un puntatore ad interi ..ed in uscita ai il puntatore alla struttura matrice, che poi nel programma potrai usare con l'aritmetica degli array!
Non mi ricordo bene...ma non credo si possa definire come parametro di ingresso un array...io ho sempre usato i puntatori per queste cose!
Non è vero che per fare cose del genere c'è bisogno di puntatori. Prova a leggere la risposta che ho dato sopra.
Gli array come ho detto sono passati in reference, cioé se tu hai un array nella funzione main e poi lo passi attraverso una funzione, quello stesso array verrà modificato. Quindi è inutile dichiarare una funzione di tipo int, double ecc...
Poi Giuto ha detto che sta imparando il C, può darsi che non ancora arrivi a studiare i puntatori.

Re: [risolto]output funzione in c

Inviato: mercoledì 27 febbraio 2008, 15:49
da VonNeumann
gray_fox ha scritto:
VonNeumann ha scritto:
Giuto ha scritto: Sto studiando un po di C.
Adesso vi espongo il mio problema.
Non riesco a capire come dichiare una funzione che da in output una matrice di interi.
ho provato con

Codice: Seleziona tutto

int[4][4] nomefunzione(variabili)
ma sembra essere sbagliato.
Sapete dirmi come si dichiara?
Grazie e ciao
assolutamente sbagliato!!
per fare una cosa del genere devi usare i puntatori!!!! dichiari una funzione che restituisce un puntatore ad interi ..ed in uscita ai il puntatore alla struttura matrice, che poi nel programma potrai usare con l'aritmetica degli array!
Non mi ricordo bene...ma non credo si possa definire come parametro di ingresso un array...io ho sempre usato i puntatori per queste cose!
Non è vero che per fare cose del genere c'è bisogno di puntatori. Prova a leggere la risposta che ho dato sopra.
Gli array come ho detto sono passati in reference, cioé se tu hai un array nella funzione main e poi lo passi attraverso una funzione, quello stesso array verrà modificato. Quindi è inutile dichiarare una funzione di tipo int, double ecc...
Poi Giuto ha detto che sta imparando il C, può darsi che non ancora arrivi a studiare i puntatori.

l'ho vista ma mi sembrava fosse una guida per il C++!!
e comunque io non ho detto che quello che hai scritto tu è sbagliato...io dicevo sbagliatissimo rispetto al suo esempio int[4][4] nomefunzione(variabili)
In ogni caso non approvo quell'esempio!!! e comunque io ho sempre agito così... chiedo scusa  (b2b)