Devo fare un esercizio dove, una volta caricato l'array bidimensionale con stringhe, scrivo da tastiera una nuova stringa e la cerca se è presente o meno nell'array...
io ho scritto questo codice ma mi da errore di core dumped:
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int RicercaBinaria(char **array, char stringa[101], int sinistra, int destra) {
int centro;
if (sinistra==destra) {
if (strcmp(stringa,array[sinistra])==0) {
return sinistra;
} else {
return -1;
}
}
centro=(sinistra+destra)/2;
if (strcmp(stringa,array[centro])<0){
return RicercaBinaria(array, stringa, sinistra, centro);
} else if (strcmp(stringa,array[centro])==0){
return centro;
}else if (strcmp(stringa,array[centro])>0){
return RicercaBinaria(array, stringa, centro+1, destra);
}
}
int main() {
int n;
char **a;
int i;
scanf ("%d",&n);
a=malloc(n*sizeof(char*));
for (i=0; i<n; i++) {
a[i]=malloc(101*sizeof(char));
scanf ("%s",a[i]);
}
char k[101];
int p;
int pos;
scanf ("%d",&p);
while (p==1){
scanf ("%s",k);
pos=RicercaBinaria(a,k,0,n);
printf ("%d",pos);
scanf ("%d",&p);
}
return 0;
}
qualcuno sa come aiutarmi?