|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Torino (provincia)
Messaggi: 960
|
[C] Illegal Initialization in function.. perchè?!
Codice:
void func(char *prova) {
char *p = prova;
char *s[2] = {"gianni", prova};
}
Perchè mai??
__________________
Nel mercatino ho concluso con: eleoluca, huangwei, jai, ^v3rsus, Rinos, arvey, kinderboy. |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9454
|
Re: [C] Illegal Initialization in function.. perchè?!
Quote:
char s[2] = {"gianni", prova}; scrivendo "char * ..." crei un puntatore mentre tu, da quel che ho capito, vuoi un array che contenga due stringhe.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2002
Città: somewhere in Europe
Messaggi: 2554
|
Non credo tu possa inizializzarla così, se vuoi copiare gianni in s[2] dovrai usare una strcpy. Non so neanche se tu possa mettere s[2] o se devi prima incrementare il puntatore, farlo diventare s++ e poi solo dopo lavorarci sopra..
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: May 2002
Città: somewhere in Europe
Messaggi: 2554
|
Re: Re: [C] Illegal Initialization in function.. perchè?!
Quote:
ma se ha allocato memoria per mettiamo 10 stringhe può scorrere le dieci stringhe facendo un ciclo for(i=0;i<10;i++) //lavorare su s s++ //per accedere ala seconda stringa eccetera.. |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9454
|
Re: Re: [C] Illegal Initialization in function.. perchè?!
Quote:
char s[2] dichiari una stringa di due caratteri. Il problema, forse, e' che nell'array devi inserire direttamente una stringa e non puntatori a stringhe. Ovvero: char * s[2]: array che contiene due stringhe (OK) "gianni": stringa che si trova in s[0] (OK) prova: questa non e' una stringa bensi un puntatore ad una stringa (??) Non sono sicuro ma potrebbe essere quello il problema...
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. Ultima modifica di Ed_Bunker : 20-06-2004 alle 20:17. |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9454
|
Re: Re: Re: [C] Illegal Initialization in function.. perchè?!
Quote:
char * s[10]; E poi magari allocare dinamicamente la mem. per le singole stringhe (s[1], s[2], s[3],...) contenute nell'array.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Torino (provincia)
Messaggi: 960
|
Re: Re: Re: [C] Illegal Initialization in function.. perchè?!
Quote:
Ovviamente se dopo la dichiarazione scrivo s[0] = prova; me lo prende senza fiatare.
__________________
Nel mercatino ho concluso con: eleoluca, huangwei, jai, ^v3rsus, Rinos, arvey, kinderboy. |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9454
|
Minchia...
facendo come avevi scritto all'inizio va bene (Ed infatti se un puntatore a char "equivale" ad un array di char e quindi ad una stringa...) Codice:
void func (char*);
int main (int argc, char * argv[])
{
if (argc != 2)
{
perror("Usage: prova name");
exit(-1);
}
char * parola = argv[1];
func(parola);
printf("Funzione eseguita correttamente\n");
return(0);
}
void func ( char * prova)
{
char * p = prova;
char * s[2] = {"Ste", prova};
printf("%s\n", s[0]);
printf("%s\n", s[1]);
return;
}
Prova....
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. Ultima modifica di Ed_Bunker : 21-06-2004 alle 00:09. |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Torino (provincia)
Messaggi: 960
|
Quote:
accidenti allora mi devo rassegnare e cambiare compilatore, sto scoprendo un bug dietro l'altro e pensare che ormai mi ci ero affezionato!! guarda cosa succede se compilo quelle righe di codice (tralasciando il fatto che mi sono dimenticato di aggiugere i vari #include e quindi non trova i prototipi)
__________________
Nel mercatino ho concluso con: eleoluca, huangwei, jai, ^v3rsus, Rinos, arvey, kinderboy. |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jun 2004
Messaggi: 760
|
Quote:
|
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9454
|
Quote:
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:59.



















