Ok, dopo qualche ricerca sull'allocazione dinamica ho risolto così:
codice:
#include <stdio.h>
#include <string.h>
int main()
{
int i; //contatore
int dim_vett; //dimensione del vettore
int dim_string = 20;
char **stringhe;
char string;
printf("Inserisci il numero di elementi su cui lavorare: ");
scanf("%d", &dim_vett);
printf("%d", dim_vett);
stringhe = (char**)malloc(sizeof(char**) * dim_vett); //genera il vettore che conterrà le stringhe
for (i=0; i < dim_vett; i++) {
stringhe[i]= (char*)malloc(sizeof(char *) * dim_string);
printf("\nInserisci la %da stringa da ricercare: ", i+1);
scanf("%s", &string);
strcpy(stringhe[i], &string);
}
for (i=0; i < dim_vett; i++) {
printf("%s ", stringhe[i]);
}
return 0;
}
Sembra che funzioni correttamente ma se qualcuno potesse provare e dirmi se effettivamente va sarebbe meglio... solo una cosa, ora come faccio a liberare la memoria allocata da malloc quando non serve più? Ricordo che era una cosa che andava fatta ma la procedura nella mia testa è molto nebulosa