a função malloc permite alocar uma quantidade de espaço na memoria assim podendo usar ela para criar variaveis, a vantagem de usar o malloc e quando se cria funçoes dinamicas q sao destruidas logo apos o uso, mesmo depois da funçao ser destruida os dados dentro da variavel q vc crio ainda vai continuar a menos q vc libere o espaço na memoria, veja abaixo uma funçao q se chama fts
na source acima pode ver q agente fez uma funçao chamada fts q recebe um numero como argumento e atribui esse numero a variavel lol, se agente chama a funçao fts denovo nao vai ficar salvo o valor da variavel pq elas sao dinamicas, outro exemplo seria passar o endereço de uma variavel da funçao fts como retorno (a funçao ia ser destruida e conteudo dela tambem) entao agente nao poderia acessar o valor dela um geito seria tranformar essa variavel em uma variavel estatica usando o comando static ou entao alocar os dados fora da pilha da funçao, como esse tutorial e para ensinar o malloc entao nao vou entrar em detalhes das variaveis static, para alocar um espaço basta usar o comando malloc() e passar como argumento o tamanho da variavel (para isso agente usa o sizeof dentro do malloc q retorna o tamanho de uma variavel ou tipo), depois vamos atribuir esse malloc a um ponteiro do tipo da nossa variavel mais ou menos assim
so lembrando q a funçao malloc ta dentro da biblioteca stdlib.h entao tem q declarar ela tambem, depois de criar o ponteiro e atribuir o malloc para ele agora vamos atribuir um valor a nossa variavel para isso agente atribui ao ponteiro assim
para exibir basta exibir o ponteiro assim
quando agente nao precisar mais da variavel basta liberar ela com o comando free()
bom galera existe outros comando q permite manipular a memoria o malloc so e um deles ^^
by hacker fts315
- Código:
#include <stdio.h>
int fts(int numero)
{
int lol = lol + numero;
return 0;
}
int main(void)
{
fts(315);
}
na source acima pode ver q agente fez uma funçao chamada fts q recebe um numero como argumento e atribui esse numero a variavel lol, se agente chama a funçao fts denovo nao vai ficar salvo o valor da variavel pq elas sao dinamicas, outro exemplo seria passar o endereço de uma variavel da funçao fts como retorno (a funçao ia ser destruida e conteudo dela tambem) entao agente nao poderia acessar o valor dela um geito seria tranformar essa variavel em uma variavel estatica usando o comando static ou entao alocar os dados fora da pilha da funçao, como esse tutorial e para ensinar o malloc entao nao vou entrar em detalhes das variaveis static, para alocar um espaço basta usar o comando malloc() e passar como argumento o tamanho da variavel (para isso agente usa o sizeof dentro do malloc q retorna o tamanho de uma variavel ou tipo), depois vamos atribuir esse malloc a um ponteiro do tipo da nossa variavel mais ou menos assim
int *pont = malloc(sizeof(int));
so lembrando q a funçao malloc ta dentro da biblioteca stdlib.h entao tem q declarar ela tambem, depois de criar o ponteiro e atribuir o malloc para ele agora vamos atribuir um valor a nossa variavel para isso agente atribui ao ponteiro assim
- Código:
#include <stdlib.h>
int main(void)
{
int *pont = malloc(sizeof(int));
*pont = 315;
}
para exibir basta exibir o ponteiro assim
- Código:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *pont = malloc(sizeof(int));
*pont = 315;
printf("%d",*pont);
}
quando agente nao precisar mais da variavel basta liberar ela com o comando free()
- Código:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *pont = malloc(sizeof(int));
*pont = 315;
printf("%d \n",*pont);
free(pont);
printf("%d",*pont);
}
bom galera existe outros comando q permite manipular a memoria o malloc so e um deles ^^
by hacker fts315