PDA

View Full Version : Passaggio indirizzo ??


rasega
13-01-2003, 09:55
Ciao, sto cercando di fare una funzione C che dev'essere intestata così :
leggi(int dati[],int &n)
Il compilatore mi segnala un errore nella dichiarazione del parametro n, che devo passare x indirizzo !!
Che c'è che non va please ?? :confused:

soalle
13-01-2003, 10:23
Se ho capito bene il problema...
nella dichiarazione / definizione della funzione devi dichiararla così:

void leggi (int dati[],int* n){...} //indica al compilatore che gli arriverà un indirizzo

quando invece la richiami:

int n;
leggi(dati,&n); //indica al compilatore di passargli l'indirizzo della variabile n

rasega
13-01-2003, 11:41
No, il problema è che la dichiarazione della funzione mi è stata data (dal profe !!) come ho scritto prima leggi(int dati[],int &n) ... solo dichiarandola così ho un errore del compilatore !!
Secondo me non si può proprio dichiarare così quel parametro !!

bsummer
13-01-2003, 12:11
Mi sembra (cioe' non ne sono sicuro) che la sintassi con la "&", sia ammessa nel c++ e non nel c.

Quindi in c devi per forza scriver int *n, mentre in c++ puoi permetterti di scrivere int &n.

Qualcuno conferma ?

Aloha

cionci
13-01-2003, 12:15
Giusto... I passaggi per riferimento in C non ci sono ;)

rasega
13-01-2003, 13:43
Uhm...a 'sto punto mi sa che mi serve il c++ !!
Esiste un editor/compilatore c++ free da scaricare da qualche parte please ??

cionci
13-01-2003, 14:24
Per Windows : http://www.bloodshed.net/dev/devcpp.html
Prendi quello con mingw 2.95.3...
Ma che compilatore hai ? Molte volte i compilatori discriminano fra C e C++ in base all'estensione del file (.c per il C, .cpp per il C++)...

rasega
13-01-2003, 14:40
:rolleyes:...mi vergogno un po'...vado avanti con un Turbo C 2.01 che era disponibile sul sito Borland una...'antina di anni fa !! :eek:

cionci
13-01-2003, 14:53
Sulla versione 3 si poteva programmare anche in C++...
Prova a salvare un file con estensione CPP...

rasega
13-01-2003, 15:52
Già che ci siamo mi dareste anche una mano x installare il c++ che ho scaricato dal link di prima ??
Se cerco di compilare un qualsiasi mio programmino che per il TC (x dos !!) andava,mi spara fuori una montagna di errori che credo abbiano a che fare che gli #include che inserisco in testa al programma !!
C'è un metodo diverso x il c++ rispetto al c ??

cionci
13-01-2003, 19:29
No...ma probabilmente i file da includere sono diversi...
Che .h includi ?

soalle
13-01-2003, 19:41
Originally posted by "rasega"

No, il problema è che la dichiarazione della funzione mi è stata data (dal profe !!) come ho scritto prima leggi(int dati[],int &n) ... solo dichiarandola così ho un errore del compilatore !!
Secondo me non si può proprio dichiarare così quel parametro !!

è probabile che si sia sbagliato anche il prof ;) capita spesso!!!
Informati bene se fate c o c++ che c'è una bella differenza...

rasega
13-01-2003, 20:00
Son ben informato sul fatto che nei nostri esami le cose non sono mai chiare, la creazione di quella funzione faceva parte di un appello nel quale non è passato praticamente nessuno.
Il corso prevede C...e stop !! (Info 2 di ing. elettronica !!)

soalle
13-01-2003, 21:19
beh se è C e basta allora il prof si è sbagliato... :p

rasega
13-01-2003, 22:47
OK...oltre a me vaglielo a dire a quei 30 che ha segato all'esame !!!!!!!! :eek:

cionci
14-01-2003, 09:04
E complimenti a questi professori che non sanno dve finisce il C e dove inizia il C++...

rasega
14-01-2003, 10:51
Originally posted by "cionci"

No...ma probabilmente i file da includere sono diversi...
Che .h includi ?

..mi ero perso in altre discussioni ;) .
Ad esempio quando compilo mi dice :
"implicit declaretion of........clrscr()"
e altre che prima usavo normalmente !!
Includo <stdio.h> !!

cionci
14-01-2003, 11:23
clrscr() non c'è...devi usare system("cls");

rasega
14-01-2003, 12:39
Urgh !!
E come faccio a sapere quali funzioni sostituiscono altre ??
Ma non c'è un reference all'interno del compilatore che mi hai consigliato in precedenza in modo da vedere le funzioni disponibili ??
(vedi il vecchio CTRL+F1 del Turbo C !!)

(thanx !!)

rasega
14-01-2003, 16:29
Whoopp (please) :confused:

cionci
14-01-2003, 16:58
Va cercato...sinceramente non so dove lo puoi trovare...

Il compilatore GCC supporta in generale tutti gli header standard... E' il compilatore che usavi prima che non è per niente standard...