Celebron ha ragione, per prima cosa l'interfaccia della funzione deve essere:
char* funzione(char *stringa_dove_cercare, char *stringa_da_cercare);
Poi c'è una questione da considerare, se nella tua funzione tu fai:
il compilatore dovrebbe darti un warning del tipo: "function 'funzione' return a local variable", che ti indica che tu ritorni come risultato della funzione una stringa variabile locale di 'funzione' e che quindi, terminata questa funzione, cesserà di esistere!codice:char esito[MAXNUM]; /*codice della funzione*/ return esito;
Per far si che "continui ad esistere" dopo che 'funzione' è terminata e che quindi possa essere correttamente ritornata occorre allocare dinamicamente, facendo:
Nel main però è fondamentale, prima di terminare il programma, liberare la memoria allocata con la free(). Quindi ti conviene fare tipo:codice:char* esito; esito = (char*) malloc (MAXNUM*sizeof(char)); /*codice della funzione*/ return esito;
Detto ciò, come evidenziato da Celebron, la tua funzione non funziona (codice:char* result; result = funzione (v, w); /*usi result come ti serve*/ free (result); return 0;) molto, ma è un altro paio di maniche!
![]()

) molto, ma è un altro paio di maniche!
Rispondi quotando