mas pela variavel data nao ser um ponteiro de uma estrutura ele iria nao funcionar??
pq eu TENHO q declarar a varivel como do tipo DBT, mas sem ser do tipo ponteiro, ou seja:
DBT data;
e nao
DBT *data;
Versão Imprimível
mas pela variavel data nao ser um ponteiro de uma estrutura ele iria nao funcionar??
pq eu TENHO q declarar a varivel como do tipo DBT, mas sem ser do tipo ponteiro, ou seja:
DBT data;
e nao
DBT *data;
É porque data não é ponteiro mas o membro dela data.data é
"void *data;" então tem que ser tratado como ponteiro.
E aeh, SDM,
vc tentou com o cast para (void *)? Não funcionou não? Já foi tantas sugestões q a gente vai acabar ficando sem nenhuma ... :)
fricardo
eae fricado, bom cara....eu acho q ja consigui faze o void aponta pra estrutura, meu problema agora ta sendo na hora do DB->put().....agora a falha de segmentacao eh no memcpy dele....eu ja tentei da um return(0); exatamente na linha anterior ao put, e ele funcionou perfeitamente, soh q se eu colocar o return na linha seguinte, ele da erro....
valeu Hez4el, valeu Fricado :D
Ola SDM
tem um problema no return 0;
esse comando funciona como break dentro de uma função.
se voce colocar por exemplo:
o comando x=1 não sera executado porque a função para no return.Citação:
return 0;
x=1;
por isso quando vc coloca ele antes do memcpy do DBT->put() funciona legalzinho, porque ele nem chega a executar.
o certo é vc colocar depois mesmo senão tudo que vier depois ele não é executado. por isso é indicado usa-lo somente no fim da função.
Alias vc pode explicar um trecho pra mim
1 - o retorno de db->put é um ponteiro para int ou um int?
2 - é db->put ou db.put?
3 - qual o tipo de db, e quais os parametros formais da função put();
ret=db->put(db,NULL,&key,&data,0);
se o erro ta nessa função vm explorar todas as possibilidades dela!!!!
Abraços