Newsgroup: it.comp.lang.c
Titolo: main(void) --array-->funzione(?)

/*main(void) --array-->funzione(?)*/
/*Avevo iniziato in un altro tread e ringrazio tutti coloro che*/
/*mi hanno dato il loro tempo ma non riesco a trovare una*/
/*soluzione ad un problema che mi sembra assurdo*/
/**************************************************************/
#include"/Program Files/Miracle C/include/stdio.h"
main()
{
char stringa[50];        /*creo un array di char*/
gets(stringa);            /*e da tastiera aquisisco una stringa*/
ascii(stringa);            /*con la funzione'ascii()'voglio visualizzarne*/
                                  /*il valore numerico in ascii*/
}
/***************************************************************/
void ascii(char a[]) /*nella dichiarazione della funzione*/
                                /*uso questa sintassi ma il compi....*/
{
for(t=0;t<strlen(a);t++)
   {
   printf("\%d",a[t]);
   }
}
/*Miracle C Compiler (r3.1), written by bts.
Compiling c:\documenti\ascii.c
main
c:\documenti\ascii: 38,40: bad type in function ascii
'void ascii(char a[]) { for(t=0'
aborting compile, too many errors*/
/*******************************************************/
void ascii(char*a)/*allora provo questa ma il compi...*/
{
for(t=0;t<strlen(a);t++)
   {
   printf("\%d",a[t]);
   }
}
Miracle C Compiler (r3.1), written by bts.
Compiling c:\documenti\ascii.c
main
c:\documenti\ascii: 38,40: bad type in function ascii
'void ascii(char*a) { for(t=0'
aborting compile, too many errors
/*******************************************************/
/*żcome posso trasferire un array all'interno di una funzione?*/
/*ciao a tutti e grazie per l'attenzione*/

 aborting compile, too many errors*/
Questo perche` non hai dichiarato il prototipo di ascii *prima* di main.
Cosi` quando il compilatore trova la chiamata ad ascii assume che il
prototipo sia "int ascii (char a[]);". Invece dopo trova una
dichiarazione contrastante con quello che si aspettava.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
It can't rain forever,
but you can die before seeing the sun again.

/+ACo-grazie per la risposta ma ho inserito il prototipo e il
risultato non cambia+ACo-/
/+ACo-eccoti il listato e il messaggio
di errore,ora tenter+API- di trasferire l'array all'interno
di una struttura come mi ha consigliato E.M.Giordano che
ringrazio+ACo-/
/+ACo-ciao e grazie mille cmq+ACo-/
void ascii(char a+AFsAXQ-)+ADs-
main()
+AHs-
int t+ADs-
char stringa+AFs-50+AF0AOw-
gets(stringa)+ADs-
ascii(stringa)+ADs-
+AH0-
void ascii(char a+AFsAXQ-)
+AHs-
int t+ADs-
for(t+AD0-0+ADs-t+ADw-strlen(a)+ADs-t+-+-)
   +AHs-
   printf(+ACIAJQ-d+AF8AIg-,a+AFs-t+AF0-)+ADs-
   +AH0-
+AH0-
/+ACo-Miracle C Compiler (r3.1), written by bts.
Compiling c:+AFw-documenti+AFw-ascii.c
c:+AFw-documenti+AFw-ascii: 32,34: Parse Error, expecting +AGA-')'' or +AGA-',''
'void ascii(char a+AFsAXQ-)'
aborting compile, too many errors+ACo-/

/+ACo-E' vero nel mio listato mancava la dichiarazione
della variabile 't' nella funzione ascii() tuttavia
il problema persiste infatti guarda il listato corretto
e il mess del compilatore+ACo-/
/+ACo-in ogni caso grazie per l'interesse+ACo-/
main()
+AHs-
char stringa+AFs-50+AF0AOw-
gets(stringa)+ADs-
ascii(stringa)+ADs-
+AH0-
void ascii(char a+AFsAXQ-)
+AHs-
int t+ADs-
for(t+AD0-0+ADs-t+ADw-strlen(a)+ADs-t+-+-)
   +AHs-
   printf(+ACIAJQ-d+AF8AIg-,a+AFs-t+AF0-)+ADs-
   +AH0-
+AH0-
/+ACo-c:+AFw-documenti+AFw-ascii: 38,40: bad type in function ascii
'void ascii(char a+AFsAXQ-) +AHs- int t'
aborting compile, too many errors+ACo-/
/+ACo-invece se dichiaro la funzione ascii() con+ACo-/
void ascii(char +ACo-a)
                    +AHs-...
                     ...+AH0-
/+ACo-c:+AFw-documenti+AFw-ascii: 38,40: bad type in function ascii
'void ascii(char +ACo-a) +AHs- int t'
aborting compile, too many errors+ACo-/
/+ACo-AIUTO+ACo-/

for(t=0;t<strlen(a);t++)
Beh,qui manca sicuramente la dichiarazione di 't' .
for ( int t = 0 ; t < strlen(a) ; t++ )

 for ( int t = 0 ; t < strlen(a) ; t++ )
Questo non è C ma C++. In C si scrive
int t;
for ( t = 0 ; t < strlen(a) ; t++ )
EMG

Se riesci a ripostare la cosa in maniera ... piu' leggibile
Andrea Ferro
/+ACo-spero si riesca a leggere .ciao+ACo-/


 void ascii(char a+AFsAXQ-)+ADs-
[cut]
Il tuo reader ha dei problemi, io vedo solo questa roba...
Riposta in maniera pulita
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se alla sera, dopo una strepitosa vittoria, guardandoti allo
specchio dovessi notare un secondo paio di palle, che il tuo 
cuore non si riempia d'orgoglio, perche` vuol dire che ti 
stanno inculando -- Saggio Cinese



Invece e' C standard, e' lecito dichiarare una variabile all'interno
di un blocco { }.
Nell'esempio, il ciclo for() era seguito dall'apertura di un blocco, e
la variabile si intende dichiarata all'interno di quel blocco.
ciao, acc.   
a...@libero.it

la variabile si intende dichiarata all'interno di quel blocco.
Invece non è C standard scrivere una cosa del genere:
for (int i = 0; i < 20; ++i)
{...}
E' una cosa standard scrivere
{
int i;
for(i = 0; i < 20; ++i)
{..}
}
Controlla lo standard, se non ce l'hai a portata di mano il tuo compilatore,
e se ti compila il primo esempio è un compilatore che non rispetta lo
standard.
Lanugo

la variabile si intende dichiarata all'interno di quel blocco.
E invece ho detto una str...a, chiedo scusa a tutti.
Come aveva detto Enrico e' una estensione del C++
ciao, acc.   
a...@libero.it