Geek Vault » 2008 » March » 27

Thursday, March 27th, 2008


Quando eu comecei a programar em C, eu sempre tive a curiosidade de por que eu não poderia fazer isso:

char buff[];
scanf(”%s”,&buff);

para pegar uma string de qualquer tamanho do teclado. Obviamente isso não funciona em C, já que em C você precisa manipular a memória na forma mais básica possível, depois que aprendi a utilizar malloc() e realloc(), isso ficou simples.
A idéia é bem simples:
1)Inicializar uma pequena string vazia
2)entrar em um loop que vai fazer (até encontrar ‘\n’):
1.pegar um caractere por vez e armazenar em uma variável temporária
2.contar o tamanho (atualizado) da string digitada
3.se o tamanho for maior que o incial:
1.reallocar a memória com 2 a mais(um para o caractere, um para o final)
4.Colocar o caractere recebido, no final da string
Claro que tudo isso tem que ser feito com muito cuidado para não estourar a memória e tudo isso que já sabemos.
Vamos ao código então, ele é bem simples, e adaptar em uma função para o seu programa em C fica praticamente patético (apenas coloque um return *buff; no final ;)).
(more…)

Para os fãs do Opera, mais uma felicidade, ele agora detem 98% dos acertos do teste ACID3, Safari 96% e Firefox Beta4 71%. Basta esperar a nova versão do Opera ;)

Retirado do Slashdot.

Passeando pelo Linux Today, eu vi um artigo sobre a estrutura de diretórios no Linux, vale a pena dar uma olhada.

Link final aqui.

Se você é fumante, e quer parar de fumar e não sabe mais o que tentar, pode tentar o e-cigarro, o cigarro eletrônico. Pela bagatela de 78 Euros (+- 200R$) você compra um cigarro que se carrega na energia e, quando você tentar fumar, ele ativa um sensor que libera substâncias não tóxicas mas que imitam em tudo as substâncias reais de um cigarro, interessante, tem que ver se funciona com os fumantes agora…

Vi lá no terra.