Ponteiros void na linguagem C (parte 2)
Nessa seqüência continuarei falando sobre como podemos utilizar esses ponteiros tão discriminados e a melhor forma de usar a atribuição neles. Além disso mostrarei como podemos usar ponteiros void para construirmos uma fila genérica que pode literalmente guardar qualquer tipo de dado.
Introdução
Bom, pra você estar lendo isso é primordial que já tenha lido a
primeira parte do artigo:
Isso evitará problemas no entendimento deste artigo. Todo o conteúdo exposto aqui pode ser conseguindo deduzindo o artigo anteriormente apresentado. Assim, estou dando uma "colher de chá" pra vocês.
Como dito anteriormente, não é possível atribuir dados a um tipo de dado void, mas podemos fazer com que o apontado do ponteiro void receba algum conteúdo. A explicação para isso está num fator muito simples de se entender. O pequeno trecho abaixo será usado para explicar como podemos fazer uma atribuição em void:
Isso evitará problemas no entendimento deste artigo. Todo o conteúdo exposto aqui pode ser conseguindo deduzindo o artigo anteriormente apresentado. Assim, estou dando uma "colher de chá" pra vocês.
Um pouco mais sobre ponteiro void
Como dito anteriormente, não é possível atribuir dados a um tipo de dado void, mas podemos fazer com que o apontado do ponteiro void receba algum conteúdo. A explicação para isso está num fator muito simples de se entender. O pequeno trecho abaixo será usado para explicar como podemos fazer uma atribuição em void:
int b, *c;
b = 9;
c = &b;
*c = 5;
b = 9;
c = &b;
*c = 5;
Obviamente, não temos nada de novo aqui. Mas se analisarmos mais de perto... Vamos fingir ser um compilador para ver se fica mais claro:
- Aloca-se espaço para um int que é referenciado como o nome B.
- Aloca-se um ponteiro do tipo int chamado de C.
- B recebe 9, isto é, o espaço de memória que B referência passará a conter 9.
- C que antes apontava para um lugar desconhecido receberá endereço da variável B.
- O endereço que esta em C deve ser acessado e setado para 5.
Não sei se está ficando mais claro... Vamos a outro exemplo, dessa vez sem programação.
Você tem um amigo chamado Zildo, esse cara está querendo uma idéia de onde pode conseguir algo básico sobre ponteiros void, vem falar contigo e pergunta:
- "Cara, se sabe de alguma URL onde posso ver mais sobre esses Ponteiros?"
Você, um cara muito esperto, responde :
- "Conheço um artigo de um tal jllucca no endereço http://www.vivaolinux.com.br".
Assim, Zildo, nosso ponteiro, recebe o endereço e vai correndo acessá-lo em algum browser...