Você está na página 1de 6

Ponteiros void na linguagem C (parte 2) [Artigo] - pgina 3

Home (/index.php) / Artigos (/artigos/index.php) / C/C++ (/artigos/categoriaIndex.php?codigo=4)


/ Miscelnea (/artigos/verSubCategoria.php?codigo=45) / Ponteiros void na linguagem C (parte 2)

Ponteiros void na linguagem C (parte 2)


(/~jllucca)
jllucca (/~jllucca)

Nessa seqncia continuarei falando sobre como podemos utilizar esses


ponteiros to discriminados e a melhor forma de usar a atribuio neles. Alm
disso mostrarei como podemos usar ponteiros void para construirmos uma la
genrica que pode literalmente guardar qualquer tipo de dado.
Por: Ricardo Rodrigues Lucca em 09/06/2004

[ Hits: 45.055 ]

Denuncie (/denuncie/index.php) Favoritos (/addBookmark.php?tipo=artigo&codigo=1004) Indicar

(/formIndicar.php?tipo=artigo&codigo=1004) Impressora (/artigos/impressora.php?codigo=1004)

TEORIA DO VOID
Na verdade no uma teoria e sim, uma explanao. Assim, vou comear a falar dessa idia. Antes de continuar,
vamos recordar o que j sabemos sobre o void:
No contm tipo;
No possvel manipulaes(acesso e leitura) dos dados diretamente;
Tem tamanho normalmente correspondente a um byte.
Bom, mas ento para que existe o tipo void? Na realidade, o tipo void foi feito para ser um tipo "genrico" e por ser
"genrico" quem notar vai perceber que com ele possvel fazermos algo do tipo:

// Este cdigo ilustrativo e no funcionar!


#include <stdio.h>
void main(void)
{
void y[ sizeof( int ) ];
y = 9;
printf("%d", y);
}

Infelizmente, esse tipo de algoritmo no possvel de se fazer por um nico motivo. Esse motivo que o compilador
no permite que declaremos tipos "void" como variveis (ponteiros a excesso). Mas, voltando a teoria... Assim,
poderamos alocar qualquer varivel apenas informando quantos bytes queremos e deixando a alocao para o
programa permitindo-nos carmos mais xados no nosso trabalho.
No cdigo ilustrativo mostrado acima, mesmo contendo alguns errinhos serve para demonstrar o que estava
querendo que vocs j soubessem. O tipo void o tipo primitivo da linguagem C, pois apartir dele podemos formar
qualquer outro tipo que existe ou desejamos. Assim, podemos dizer que essa a varivel mais poderosa de todos
os tipos. Mas, tambm a que mais desse o "nvel" de todas, talvez, sendo por isso a mais negligenciada.

Ponteiros void na linguagem C (parte 2) [Artigo] - pgina 3

Pgina anterior (/artigo/Ponteiros-void-na-linguagem-C-(parte-2)?pagina=2)


Prxima pgina (/artigo/Ponteiros-void-na-linguagem-C-(parte-2)?pagina=4)

Pginas do artigo
1. Introduo (/artigo/Ponteiros-void-na-linguagem-C-(parte-2)?pagina=1)
2. Atribuio (/artigo/Ponteiros-void-na-linguagem-C-(parte-2)?pagina=2)
3. Teoria do void
4. Fila (/artigo/Ponteiros-void-na-linguagem-C-(parte-2)?pagina=4)
5. Concluindo (/artigo/Ponteiros-void-na-linguagem-C-(parte-2)?pagina=5)
Outros artigos deste autor
Usando MySQL na linguagem C (/artigo/Usando-MySQL-na-linguagem-C)
Introduo linguagem C - Parte III (/artigo/Introducao-a-linguagem-C-Parte-III)
Linux Bsico - Parte II (/artigo/Linux-Basico-Parte-II)
Criando um servidor de Ultima Online (/artigo/Criando-um-servidor-de-Ultima-Online)
Utilizando a funo QSort em C (/artigo/Utilizando-a-funcao-QSort-em-C)
Leitura recomendada
Escrevendo o caos em C (/artigo/Escrevendo-o-caos-em-C)
Brincando com o editor HT (/artigo/Brincando-com-o-editor-HT)
Aprendendo a utilizar o GNU Debugger (parte 1) (/artigo/Aprendendo-a-utilizar-o-GNU-Debugger-(parte-1))
Criando programas com suporte a arquivos de congurao com a libConfuse (/artigo/Criando-programascom-suporte-a-arquivos-de-conguracao-com-a-libConfuse)
Programando em Qt (/artigo/Programando-em-Qt)
Comentrios
[1] Comentrio enviado por lorenzi (/~lorenzi) em 10/06/2004 - 00:26h
muito bom o artigo para quem ja programa ou que esta comecando a usar a linguagem C.
0

[2] Comentrio enviado por ymc (/~ymc) em 11/06/2004 - 08:22h


Este artigo com certeza completa o primeiro. Antes estava meio vago a utilidade do ponteiro void. Com este
artigo cou mais claro pra mim e tirou algumas duvidas sobre malloc.
Otimo artigo.

Ponteiros void na linguagem C (parte 2) [Artigo] - pgina 3

[3] Comentrio enviado por robson.dantas (/~robson.dantas) em 13/06/2004 - 09:53h


Muito bom o seu artigo.
Tenho preparado algo sobre ponteiros void, para C++; Criei uma classe genrica, que faz acesso dados em
C++ para bancos como postgres, mySQL, SQL Server e Oracle;
o que acha sobre o assunto ?
-Robson
0

[4] Comentrio enviado por jllucca (/~jllucca) em 14/06/2004 - 19:43h


ymc,
certamente que completa o primeiro! Como disse no inicio do segundo, eu dividi o assunto pra deixar a parte
"pratica" para ser tratada nesse artigo. Mas, para quem ler o contedo desse segundo artigo esta no primeiro s
que mais direto e sem precisar "fritas os miolos",
[]'s
0

[5] Comentrio enviado por jllucca (/~jllucca) em 14/06/2004 - 19:45h


Robson,
sobre o que eu acho o seguinte void excelente para C. Mas, em C++ temos algumas coisas que nos auxiliam
que podem ser at melhores que o void. No seu caso, voce j pensou em usar template? Eu no conhecia isso
em C++, mas seria uma alternativa mais elegante at para a classe que coloquei na sesso scripts.
[]'s
0

[6] Comentrio enviado por engos (/~engos) em 25/06/2004 - 10:47h


Achei bem vago esse segundo artigo, me deixou a impresso que voc correu para completar o primeiro e
atropelou um pouco a teoria e deixo que o conceito prtico explicasse tudo por si s.

Ponteiros void na linguagem C (parte 2) [Artigo] - pgina 3

Como voc mesmo disse, o primeiro artigo de forma prtica, existiu um complementar, mas nada de muito
interessante.
Gostei do primeiro artigo, mas esse segundo foi mediano, entretanto deu para perceber que voc conhece bem
sobre o assunto, que tal um terceiro artigo mais elaborado, com conceitos tcnicos e prticos proporcionais e
exemplos para serem usados no cotidiano?
Lendo esse segundo quei com a seguinte dvida:
Em quesito de desempenho, onde est a vantagem?
0

[7] Comentrio enviado por roxcorp (/~roxcorp) em 02/11/2004 - 18:24h


Ola jllucca,
Fila nao eh FIFO? Quando removo um da la ele tem que me entregar o primeiro que entrou e nao o ultimo. Isso
que vc implementou acima eh uma pilha. FILO.
Abraco. Quaquer coisa me fala se eu estiver errado: tiago@roxcorp.com
Tiago
0

[8] Comentrio enviado por jllucca (/~jllucca) em 07/11/2004 - 20:22h


Ol,
Estou me comunicando com o roxcorp por email,
mas o programa da pagina quatro est correto. Acabei de testa-lo aqui e ele realiza um FIFO e no um FILO
como ele alega.
A lista: 0 1 2 3 4
Ao ser removido dois elementos cou: 2 3 4
Em FILO, seria: 0 1 2
Mas, no aconteceu. :-)
Como disse, estou falando por email com ele para vermos esse impasse.
[]'s

Ponteiros void na linguagem C (parte 2) [Artigo] - pgina 3

[9] Comentrio enviado por kernel_sys (/~kernel_sys) em 10/10/2005 - 13:40h


Muito bom artigo mesmo , parabens
0

Contribuir com comentrio

Enviar

(/)
A maior comunidade GNU/Linux da Amrica Latina! Artigos, dicas, tutoriais, frum, scripts e muito mais. Ideal para
quem busca auto-ajuda.

FAQ - Perguntas frequentes (/faq.php)


Estatsticas do site (/estatisticas.php)
Equipe de moderadores (/equipe/)
Membros da comunidade (/membros/)

Anuncie (/anuncie/)

Ponteiros void na linguagem C (parte 2) [Artigo] - pgina 3

Contato (/falecom/)
Poltica de privacidade (/privacidade/)
Quem somos (/quemsomos/)
Termos de uso (/termos-de-uso/)

Site hospedado por:

(/verBanner.php?codigo=247)

Visite tambm:

BR-Linux.org (/verBanner.php?codigo=134) Dicas-L (/verBanner.php?codigo=135) Diolinux

(/verBanner.php?codigo=506) SoftwareLivre.org (/verBanner.php?codigo=133) UnderLinux (/verBanner.php?codigo=131)