Ir ao conteúdo
  • Cadastre-se
claudio.g.chepa

Dúvida sobre ponteiro void.

Recommended Posts

Boa noite, pessoal. Estou tentando fazer um programa servidor receber um nó de uma lista encadeada via socket de um cliente. Isto funcionou direitinho, mas queria fazer mais uma coisa. Queria que o cliente pudesse enviar um comando de remoção de um determinado no da lista que está contida no servidor. Pensei em fazer o seguinte. Como estou usando a função recv() e ela recebe um ponteiro void, depois que recebi o endereço void do cliente, eu poderia verificar que tipo de dado que é o endereço. Se for um tipo int, então eu devo remover o nó da lista que contém o valor igual ao int que recebi do cliente. Se o cliente me passou um tipo Lista, que é um nó da estrutura, então devo adicionar este nó na lista. O problema é que acho que não posso fazer este tipo de verificação com ponteiros void. Se houver um jeito de se fazer isto, alguém, por favor, me diga como.

A impressão que eu tive é que no código do servidor, eu só posso tratar de um tipo de dado que é enviado pelos clientes mesmo sendo um ponteiro void. Não posso fazer uma verificação mais ou menos assim:

if( pt void == inteiro ){

//Então o servidor faz isto.

}

else if( pt void == caracter ){

//Então o servidor faz isto.

else if( pt void == ... ){

//Então o servidor faz isto.

}

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso não é possivel, o ponteiro de void guarda um endereço de memoria, não informação se é int ou char.

int i = 'c';

veja que o codigo acima funciona.

Você deverá fazer um interface, por exemplo, se receber um "add x" adiciona um x na lista.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interface não é um conceito de c++?

Quero fazer tudo usando somente c. Pensei em fazer o seguinte. Ao invés de eu enviar este comando de remoção, eu pederia fazer com que o servidor, toda vez que recebesse um nó da lista, enviasse como resposta o endereço do início da lista. Assim, no cliente eu poderia fazer isto que falei, e aí, a remoção do nó seria feita no cliente e não no servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×