return ptr->dados;
, should you not be returning the address of the data, as: return &(ptr->dados);
? (This is probably the reason your program is crashing, because your "print word" function expects a pointer value, correct?)void* pesquisa(PNO cabeca, int (*compara)(void*, void*), void* valor)