| 
			
				| Alocamento de memória dinâmico em C |  
 
 
 
 
		
			| Que é alocamento de memória dinâmico? |  
			| 
			O alocamento de memória dinâmico é definido como dinâmicamente o alocamento do espaço para variáveis no runtime. 
 É desperdiçador ao tratar do tipo estruturas da disposição alocar tanto o espaço quando se declara
 |  
 
 
 
		
			| Cinco função do ANSI Standartd usada no alocamento de memória dinâmico |  
			|  O ANSI C fornece cinco funções padrão que lhe ajudarão alocar a memória no heap que são como segue:
 
 
			sizeof ()malloc ()calloc ()realloc ()livrar () |  
 
 
 
	    
			| A seguinte tabela descreve as cinco funções padrão diferentes que as ajudas você alocam a memória dinâmicamente |  
			| 
					
						| Function | Task |  
						| sizeof | The sizeof() function returns the memory size of the requested variable |  
						| malloc | Allocates memory requests size of bytes and returns a pointer to the Ist byte of
						allocated space |  
						| calloc | Allocates space for an 	array of elements initializes them to zero and returns a pointer to the
						memory |  
						| free | Frees previously allocated space |  
						| realloc | Modifies the size of previously allocated space. |  |  
 
 
 
		
			| sizeof () |  
			|  A função do sizeof () retorna o tamanho de memória da variável pedida. Esta chamada deve ser usada na junção com a ligação de controle do calloc (), de modo que somente a memória necessária seja alocada, melhor que em um tamanho fixo. Considerar o seguinte, 
			 |  
			 | 
					
						 | struct date { int hour, minute, second;
 };
 
 int x;
 
 x = sizeof( struct date );
 
 |  |  
 
 
 
		 
		 	| malloc () |  
			|  Uma memória do mf do bloco pode ser alocada usando a função chamada malloc. A função do malloc reserva um bloco da memória do tamanho especificado e retorna um ponteiro do tipo vácuo. Isto significa que nós podemos o atribuir a qualquer tipo do ponteiro. Faz exame do seguinte formulário:  |  
			| 
					
					    | ptr=(cast-type*)malloc(byte-size); |  |  
		   |  o ptr é um ponteiro do tipo mold-tipo que o malloc retorna um ponteiro (do tipo moldado) a uma área de memória com o byte-tamanho do tamanho. O seguinte é o exemplo de usar a função do malloc 
			 |  
			| 
					
						| x=(int*)malloc(100*sizeof(int)); |  |  
 
 
 
		
			| calloc () |  
			|  Calloc é uma outra função de alocamento da memória que seja usada normalmente pedir os blocos múltiplos do armazenamento cada um do mesmo tamanho e ajustada então todos os bytes a zero. O formulário geral do calloc é: 
             |  
			| 
					
						| ptr=(cast-type*) calloc(n,elem-size); |  |  
			|  A indicação acima aloca o espaço contíguo para blocos de n cada tamanho dos bytes do tamanho dos elementos. Todos os bytes são inicializados a zero e um ponteiro ao primeiro byte da região alocada é retornado. Se não houver bastante espaço um ponteiro nulo está retornado também. 
			 |  
 
 
 
		
			| realloc () |  
			|  A memória alocada usando o calloc ou o malloc pôde ser insuficiente ou excesso às vezes em ambas as situações que nós podemos mudar o tamanho de memória alocado já com a ajuda da função chamada realloc. Este processo é chamado o reallocation da memória. A indicação geral do reallocation da memória é: 
			 |  
			| 
					
						| ptr=realloc(ptr,newsize); |  |  
 
 
 
		
			| livrar () |  
			|  Compilar o armazenamento do tempo de uma variável é alocado e liberado pelo sistema de acordo com sua classe do armazenamento. Com o alocamento runtime dinâmico, é nossa responsabilidade liberar o espaço quando não se requer em tudo. Quando o armazenamento é limitado, a liberação do espaço de armazenamento torna-se importante. Quando nós já não necessitamos os dados que nós armazenamos em um bloco da memória e nós não pretendemos usar-se que o bloco para armazenar toda a outra informação, usando a função livre, nós pode liberar esse bloco da memória para o uso futuro. 
			 |  
	      |  |  
				|  o ptr é um ponteiro que seja criado usando o calloc ou o malloc. 
		 |  
 
 
 
	
		| O seguinte programa ilustra o reallocation da memória usando o realloc () e o malloc () |  
	
		   | 
					
					    | /*Example program for reallocation*/ 
 #include< stdio.h >
 #include< stdlib.h >
 define NULL 0
 main()
 {
 char *buffer;
 /*Allocating memory*/
 if((buffer=(char *) malloc(10))==NULL)
 {
 printf("Malloc failed\n");
 exit(1);
 }
 printf("Buffer of size %d created \n",_msize(buffer));
 strcpy(buffer,Bangalore);
 printf(\nBuffer contains:%s\n,buffer);
 /*Reallocation*/
 if((buffer=(char *)realloc(buffer,15))==NULL)
 {
 printf("Reallocation failed\n");
 exit(1);
 }
 printf("\nBuffer size modified".\n);
 printf("\nBuffer still contains: %s\n",buffer);
 strcpy(buffer,Mysore);
 printf("\nBuffer now contains:%s\n",buffer);
 /*freeing memory*/
 free(buffer);
 }
 
 |  |  
 
 
 
 
		
			|  |  |  Keywords:
    Dynamic Memory Allocation in C,
	dynamic memory allocation in c++,
	c arrays,
	c tutorial,
	c array,
	void c,
	c syntax,
	unix memory,
	value allocation,
	c language,
	return c,
	memory type,
	dynamic example,
	dynamic algorithm,
	dynamic tutorial,
	c example,
	c algorithm,
	variable c,
	c type,
	c program,
	memory size,
	unix c
     |