Descupe pessoal nao ter enviado o codigo todo pois tinha varias coisas confidenciais no meio, mais o erro era realmente no destroy do merge depois do precessamento da expressão obrigado pela ajuda dos colegas.
Abraços. On 10/31/06, Eder <[EMAIL PROTECTED]> wrote: > Olá, > > Como os nobres colegas já falaram, poste sempre o código todo, com o > erro do compilador se possível. > > Se você para chutar alguma coisa, diria que você não está destruindo o > merge, então nesta parte do código você deveria faze-ló, e mais se não > está fazendo isso em algum outro ponto também dará problema em > qualquer outro OS. > > E principalmente se você processando expressões do tipo "pós-fixa" > algo assim, por > exemplo: > > (((74 10 -)32/) (23 17 +)x = 80 > > Elas possuem diferença, provavelmente sabe disso, tente detruir o > merge no final do processo assim. > > init bitree_merge(BiTree *merge, BitTree *left, BiTree *right, const void > *data) > { > > bitree_init(merge, left->destroy); > > if(bitree_ins_left (merge, NULL, data) !=0) { > > /* Aqui da erro no merge quando executo erro de memoria full */ > bitree_destroy(merge); > > return -1; > } > > OBS: > Quando retornar algo, não faça simplesmente "return", coloque o > parametro inteiro junto > você está trabalhando com C puro, não é um método de C++. > > Att, Eder > > > On 10/31/06, Rogério Schneider <[EMAIL PROTECTED]> wrote: > > Manda a função bitree_ins_left() pq eh nela que está o erro. > > Eu uso AVL e binary no FreeBSD/Linux sem problemas. > > > > Att, > > RS > > > > > > On 10/31/06, Giovanni P. Tirloni <[EMAIL PROTECTED]> wrote: > > > Cristiano Panvel wrote: > > > > Uma pergunta, estou fazendo um algoritmo de arvore binária para > > > > efetuar processamento de expressões, e funciona corretamente em Linux > > > > e AIX mais no FreeBSD está dando erro nesta parte do código e não sei > > > > o que pode ser. > > > > > > > > > > > > init bitree_merge(BiTree *merge, BitTree *left, BiTree *right, const > > > > void *data) > > > > { > > > > > > > > bitree_init(merge, left->destroy); > > > > > > > > if(bitree_ins_left (merge, NULL, data) !=0) { > > > > > > > > /* Aqui da erro no merge quando executo erro de memoria full */ > > > > > > > > return; > > > > } > > > > > > > > Já procurei isso em vários lugares, e não acho o erro. > > > > > > > > > No mínimo precisamos saber qual o erro e o pedaço de código que gera > > > esse erro. > > > > > > > > > -- > > > Giovanni P. Tirloni > > > http://www.tirloni.org > > > > > > ------------------------- > > > Histórico: http://www.fug.com.br/historico/html/freebsd/ > > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > > > > > > > > > -- > > Att, > > > > Rogério Schneider > > +55 (55) 9985 2127 > > +55 (55) 3332 5923 > > +55 (55) 3321 1535 > > > > MSN: [EMAIL PROTECTED] > > ICQ: 78778973 > > GTalk: [EMAIL PROTECTED] > > Skype: stockrt > > ------------------------- > > Histórico: http://www.fug.com.br/historico/html/freebsd/ > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > > > > > -- > Linux is for people who hate Windows, > BSD is for people who love UNIX" > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd