| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/10/2010 17:52:19
|
CB
Debugger
Membro desde: 14/03/2010 14:08:55
Mensagens: 56
Offline
|
Boas.. tenho algumas duvidas acerca da funcionalidade de malloc, sei que é uma alocaçao dinamica na memoria mas nao compreendo bem o seu funcionamento.
Malloc permite me por exemplo guardar um programa feito por mim na memoria e depois procura lo?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/10/2010 18:26:20
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Não. Ele faz alocação de memória RAM. Ou seja, de memória volátil.
Quando vc faz:
int x* = (int*) malloc(12);
Você está alocando 12 bytes, e passando o valor do ponteiro para o primeiro byte para x.
Como esse ponteiro é entendido como um int*, a leitura será feita de 4 em 4 bytes (um int tem 4 bytes).
Ou seja:
x[0] --> Dá o valor inteiro do primeiro byte
x[1] --> Dá o valor inteiro do segundo byte
x[2] --> Dá o valor inteiro do terceiro byte
Quando vc cria variáveis sem o malloc, elas são criadas apenas na pilha, e tem escopo local, na função onde foram declaradas. Com malloc, a memória é reservada no heap, que e seu conteúdo ficará lá até que um free seja dado.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/10/2010 15:08:15
|
CB
Debugger
Membro desde: 14/03/2010 14:08:55
Mensagens: 56
Offline
|
hum tou a perceber, não é isso que pretendo. Quero fazer um jogo tipo palavras cruzadas e quero guardar a matriz de maneira que o user procure a matriz atraves da linha de comandos para que depois o programa avaliar o que o user da como resultado para avaliar se ta certo ou nao. Tenho a ligeira sensaçao de que era a linguagem C que permitia 'endereçar' especificamente para depois ir la buscar. Saberia dizer me alguma dica por favor?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2010 08:52:05
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
CB wrote:hum tou a perceber, não é isso que pretendo. Quero fazer um jogo tipo palavras cruzadas e quero guardar a matriz de maneira que o user procure a matriz atraves da linha de comandos para que depois o programa avaliar o que o user da como resultado para avaliar se ta certo ou nao. Tenho a ligeira sensaçao de que era a linguagem C que permitia 'endereçar' especificamente para depois ir la buscar. Saberia dizer me alguma dica por favor?
Antigamente (acho que no tempo em que você nem era nascido), em alguns programas em C (tipicamente jogos), costumava-se declarar uma struct gigante contendo todas as variáveis globais do programa (tipicamente níveis e pontos) para que ela fosse salva em um único arquivo.
Não é preciso dizer que isso era usado tipicamente para jogos, em que você não tinha atualizações, service packs e outras coisas que poderiam deixar os dados de versões anteriores do programa completamente incompatíveis com versões mais recentes.
Um jogo em que isso era feito era o Doom.
Dica: não faça isso. É um modo muito antigo de pensar (salvar as variáveis globais do jeito que estão em um arquivo). Só era feito em jogos, por causa dessas coisas que eu listei.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2010 15:38:12
|
CB
Debugger
Membro desde: 14/03/2010 14:08:55
Mensagens: 56
Offline
|
humm isso nao sabia, obrigada! acho que atraves de manipulaçao de ficheiros, li um post sobre um 'fopen' que penso que vai servir.
agradeço pelo tempo que dispensaram, cumps
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/11/2010 15:49:06
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Bom - uma forma simples de salvar informações em arquivos é em arquivos-texto.
Se for em C, você pode usar os métodos fopen/fclose/fgets/fputs . Dá um pouco de trabalho mas nada que não possa ser feito com várias linhas de código.
Se você estiver criando um programa que só vai rodar em Windows e as informações podem ser guardadas como strings, pode usar arquivos .ini e usar as APIs WritePrivateProfileString / GetPrivateProfileString ( veja http://msdn.microsoft.com/en-us/library/ms725501%28VS.85%29.aspx e http://msdn.microsoft.com/en-us/library/ms724353%28v=VS.85%29.aspx ).
Se quiser usar XML e C++, pode usar a biblioteca Xerces ( http://xerces.apache.org/xerces-c/ ). Sempre é bom saber usar a Xerces, ela pode ser muito útil para você.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/11/2010 20:43:52
|
CB
Debugger
Membro desde: 14/03/2010 14:08:55
Mensagens: 56
Offline
|
hum descobri varias coisas atraves dos links, agradeço novamente.
Decidi aplicar os metodos fopen (:
|
|
|
 |
|
|