On 7/6/07, Davi <davividal@siscompar.com.br> wrote:
> Em Sexta 06 Julho 2007 18:14, Denis escreveu:
> > Em 06/07/07, Edson Marquezani Filho<edsonmarquezani@gmail.com> escreveu:
> > > Tá faltando incluir os cabeçalhos das bibliotecas e é bom dar um valor
> > > de retorno pra main.
> > >
> > > Nomeie com .c no final, compila com gcc -o nome_da_saída codigo_fonte.c
> > >
> > > Segue abaixo o código, testado aqui e funcionando.
> > >
> > > *********************************************************************
> > > #include <malloc.h>
> > > #include <stdio.h>
> > > #define SIZE 1024
> > >
> > > int main (void) {
> > >
> > > void *pointer;
> > >
> > > pointer = malloc(1024);
> > >
> > > if(pointer==NULL) printf("O espaço não foi alocado\n");
> > > else printf("Espaço alocado com sucesso\n");
> > >
> > > return 0;
> > >
> > > }
> >
> > Bom, isso aqui realmente compilou. Vamos lá:
> >
> > denismpa@bachianas:~> cat testa_mem.c
> [...]
> > }
> >
> > denismpa@bachianas:~> gcc -o testa_mem testa_mem.c
> > denismpa@bachianas:~> free -g
> > total used free shared buffers cached
> > Mem: 260 97 163 0 0 18
> > -/+ buffers/cache: 79 181
> > Swap: 9 2 7
> > denismpa@bachianas:~> ./testa_mem
> > Espaçalocado com sucesso
> > denismpa@bachianas:~> free -g
> > total used free shared buffers cached
> > Mem: 260 97 163 0 0 18
> > -/+ buffers/cache: 79 181
> > Swap: 9 2 7
> > denismpa@bachianas:~>
> >
> > Aparentemente o programa funcionou, mas ele não deveria ter aumentado
> > o tanto de memória em uso quando executado?
> >
> E aumentou... :-)
>
> Mas o programa terminou e a memória voltou a ser de quem era... Ou estou
> errado? Faz um tempinho que não mexo com C...
>
> Você pode deixar um loop esperando uma ação (digitar algo) do usuário antes
> de sair... Num outro terminal você checa a memória...
Se tivesse usado memória o tamanho do campo "used" do free teria
aumentado pois o sistema operacional alocaria o espaço e depois de
usado este espaço estaria disponível como cache.
man free