Ciao a tutti, sto riscontrando un problema con il seguente codice , credo sia unitilizzo malsano dei puntatori di puntatori , o magari ho impostato male la funzione, il codice è questo :
#include<stdio.h>
#include<string.h>
#include<malloc.h>
struct stringhe{
    char *str;
};
void delC(char c, char *s);
int main (){
   int i,n;
   char c;
   struct stringhe *arr= (struct stringhe*) malloc(sizeof(struct stringhe));
   printf("Dammi il numero di stringhe da memorizzare: ");
   scanf("%d",&n);
   for(i= 0; i<n; i++ ){
    printf("Inserisci la stringa numero %d: ", i+1);
    scanf("%s", ((*(arr+i)).str));
    }
   printf("Dammi il carattere da eliminare su tutte le %d inserite: ", n);
   scanf("%s", &c);
   for(i=0;i<n;i++){
     delC(c,(*((*(arr+i)).str)));
     printf("La stringa risultante e': %s", ((*(arr+i)).str));
     }
   return i;
   }
void delC(char c, char *s){
	int i,j;
	for(i=0, j=0; i<strlen(s); i++)
		if(s==c){
			s[j] = s[i+1];
             j++;
		}
	s[j]='\0';
	s=(char*) realloc(s, (j+1)*sizeof(char));
}
qualcuno mi può aiutare a capire dove sbaglio??? 
grazie a tutti per la disponibilità.