[risolto]output funzione in c

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Giuto
Prode Principiante
Messaggi: 68
Iscrizione: giovedì 1 giugno 2006, 15:13

[risolto]output funzione in c

Messaggio 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
Ultima modifica di Giuto il martedì 26 febbraio 2008, 19:52, modificato 1 volta in totale.
Avatar utente
gray_fox
Prode Principiante
Messaggi: 109
Iscrizione: lunedì 3 aprile 2006, 14:57
Contatti:

Re: output funzione in c

Messaggio 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
Avatar utente
Giuto
Prode Principiante
Messaggi: 68
Iscrizione: giovedì 1 giugno 2006, 15:13

Re: output funzione in c

Messaggio da Giuto »

Grazie per la risposta ho risolto  ;D
Avatar utente
gray_fox
Prode Principiante
Messaggi: 109
Iscrizione: lunedì 3 aprile 2006, 14:57
Contatti:

Re: [risolto]output funzione in c

Messaggio da gray_fox »

Di niente  :D
Avatar utente
VonNeumann
Prode Principiante
Messaggi: 80
Iscrizione: mercoledì 7 giugno 2006, 19:01
Località: Ancona

Re: [risolto]output funzione in c

Messaggio 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!
«La verità è una cosa troppo complicata perchè permetta qualcosa di differente dalle approssimazioni.»
Avatar utente
gray_fox
Prode Principiante
Messaggi: 109
Iscrizione: lunedì 3 aprile 2006, 14:57
Contatti:

Re: [risolto]output funzione in c

Messaggio 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.
Avatar utente
VonNeumann
Prode Principiante
Messaggi: 80
Iscrizione: mercoledì 7 giugno 2006, 19:01
Località: Ancona

Re: [risolto]output funzione in c

Messaggio 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)
Ultima modifica di VonNeumann il mercoledì 27 febbraio 2008, 15:53, modificato 1 volta in totale.
«La verità è una cosa troppo complicata perchè permetta qualcosa di differente dalle approssimazioni.»
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti