Funzione con array di stringhe

di il
2 risposte

Funzione con array di stringhe

Avrei bisogno di un aiuto con una funzione che chiede
Estrazione dei codici catastali dei terreni aventi come coltura prevalente una di quelle indicate in una lista di colture passata alla funzione come parametro (array di stringhe). La funzione restituirà il risultato in un array (elenco di codici catastali)
Devo quindi,avendo passato l'array di stringhe con dentro i nomi delle colture, controllare quali ci sono in lista e restituire i codici in un'altro array di stringhe. io ho impostato cosi:
char** estrai_codici(char** array,P_nodo lista,int n) {//n sarebbe il numero di colture 			 
        char** array_fine;
	array_fine = (char*)malloc(n * sizeof(char));
	while (lista!=NULL)
	{
		for (int i = 0; i < n; i++) {
			if (strcmp(*array[i], lista->info.tipo_di_coltura) == 0) {
				strcpy(*array_fine[i],lista->info.tipo_di_coltura);
			}
		}
		lista = lista->next;
	}
	return array_fine;
}
Mi da errore nello strcmp(),"Violazione di accesso in lettura".
Mi servirebbe una mano, sono bloccato. Grazie

2 Risposte

  • Re: Funzione con array di stringhe

    Array_fine

    è un doppio puntatore quindi assegnare

    (char*)malloc(n * sizeof(char));

    è già sbagliato, dovrebbe essere

    array_fine = (char **)malloc(n * sizeof(char *));

    E poi manca l'allocazione delle singole stringhe prima di fare la strcpy (che è sbagliata) ...

    Anche l'uso di i nella strcpy non va bene perché non è detto che debba essere usato quel valore nella strcpy se la strcmp non è soddisfatta ...

    E infine nella strcmp la singola stringa è in array
  • Re: Funzione con array di stringhe

    Ho capito. L'allocazione delle singole stringhe l'ho fatta a parte nel main.
    Comunque grazie mille per le dritte. Sistemo il codice e vedo se funziona
Devi accedere o registrarti per scrivere nel forum
2 risposte