salve! ho implementato una funzione in C che mi consenta (tramite cursori) di scorrere un database berkeley per effettuare delle ricerche! la funzione è la sottostante :

void cercaDBAutore(DB **dbpp, struct Libro *vett, char * search) {
DB *dbp;
dbp=*dbpp;

int ret;
DBC *cursorp;
DBT key, data;
char type[3]="usr";

libro book;

// azzero i DBTs prima di usarli
//memset(&key, 0, sizeof(DBT));
//memset(&data, 0, sizeof(DBT));

// crea il cursore
dbp->cursor(dbp, NULL, &cursorp, 0);

key.data = &type;
key.size = sizeof(char);

data.data = &book;
data.ulen = sizeof(libro);
data.flags = DB_DBT_USERMEM;

cursorp->close(cursorp);
//while ((ret = cursorp->get(cursorp, &key, &data, DB_NEXT)) == 0) {
// //if (strcmp(book.autore,search)==0) {
// // //vett[0]=book;
// //}
//}

//if (ret != DB_NOTFOUND) {
// errori
//}
}

search è una stinga, vett è un vettore di strutture di tipo libro!
quando inizializzo il cursore, inspiegabilmente mi dà segmentation fault! non riesco propio a capire il perchè... qualcuno può aiutarmi?

arrivederci