LinguagemC

Malloc_Calloc_free

Aug 24th, 2016
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.  
  9. // Allocação de memoria;
  10.     int *p1;
  11.  
  12.     p1 =(int*) malloc( 5 * sizeof(int)); // Casting no malloc;
  13. // Malloc recebe apenas 1 argumento o tamanho in bits para allocar;
  14. // 5 Vezes 4 bits mas diferente do calloc ele possui sujeira na memoria;
  15.  
  16.    *p1 = 1000;
  17.  
  18.    cout<<*p1<<endl;
  19.  
  20. // Free devolve a memoria, assim que terminar o programa desaloca a memoria;
  21.     free(p1);
  22.  
  23.     int *p2;
  24. // Calloc tem dois argumentos. O primeiro define o tamanho de memoria allocar do type definido no segundo argumento;
  25.     p2 = (int*) calloc(4,sizeof(int));// O calloc tambem inicializa todos os espaços definigos como zero, sem zujeira na memoria;
  26.  
  27.     cout<<*p2<<endl;
  28. // Vamos atribuir valores nos espaços de memoria allocados.
  29.  
  30.    *(p2+3) = 30; // Vai allocar memoria no terçiro endereço;
  31.    cout<<*(p2+3)<<endl;
  32. // Ponteiro cai no conceito de vector e outra meneira de pesquisar
  33.    cout<<p2[3]<<endl;
  34.  
  35.    for(int i =0;i<4;i++){
  36.                                                             //Outra meneira referencia
  37.      cout<<"Contagem:"<<i<<" Endereco dos ponteiros "<<(p2+i)/*<<&p2[i]<<*/<<" Valores condido no endereco "<<p2[i]<<endl;
  38.       free((p2+i)); // Desalocando memoria
  39.  
  40.    }
  41.  
  42.     return 0;
  43. }
Add Comment
Please, Sign In to add comment