Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como fazer Alocação Dinâmica de Armazenamento em C
Em muitos casos , o utilizador determina em tempo real se o programa vai processar uma matriz de 10 elementos ou 10.000 . Porque o tamanho da matriz é conhecida com antecedência , você tem que reservar memória e liberá-lo durante a execução do programa. Este gerenciamento de memória durante a execução é conhecido em ciência da computação , como alocação de memória dinâmica. Este artigo centra-se nas funções dedicadas a alocação dinâmica de memória em C. Coisas que você precisa
Ambiente de Desenvolvimento Integrado com C + + Compiler
Livro sobre programação C
Show Mais instruções
1

Incluir o arquivo de biblioteca com as definições da biblioteca padrão . Este é o arquivo " stdlib.h " e inclui , entre outras características importantes C , todas as funções que executam alocação dinâmica de memória . Para incluir este arquivo de biblioteca em seu programa, insira a seguinte linha na parte superior do seu arquivo de origem /header
Exemplo: .
# Include Página 2

Decida o que você quer fazer. Em seguida, escolher a função a partir das seguintes etapas que melhor se adapta a ação de alocação de memória que você deseja executar .
3

Use malloc () para um bloco de memória de tamanho conhecido . " Malloc " aloca bytes "tamanho" e retorna um ponteiro para o início do bloco
Prototype :
void * malloc ( size_t tamanho );
Exemplo: .
Int i;
caractere * buf ; printf (" Digite o tamanho da string :");
scanf ( "% d" , & i );
buf = ( char *) malloc ( i +1) ;
if ( NULL == buf ) exit ( 1);
//etc
4

Empregar calloc () para um conjunto de elementos em que cada elemento tem um tamanho de mais de um byte . " Calloc " aloca um bloco de memória para "num" elementos cada elemento sendo bytes "tamanho" de comprimento. Ele retorna um ponteiro para o início do bloco
Prototype :
void * calloc ( size_t num, size_t tamanho );

Exemplo: .
Int i , n;
int * Parr ;
printf ( "Digite o número de números inteiros :");
scanf ( "% d" , & i );
n = sizeof ( int);
Parr = (int *) calloc (i, n);
if ( NULL == SRPA) exit ( 1);
//etc
5

Utilize realloc () para alterar o tamanho de um bloco de memória. " Realloc " amplia ou reduz o bloco de memória do "tamanho" de bytes que " ptr " apontou para
Protótipo: .
Oid * realloc (void * ptr , size_t tamanho );
Exemplo:
int num1 , num2 ;
int * arr = NULL;
fazer {
printf (" Digite um número inteiro positivo :");
scanf ( "% d" , & num1 );
while ( 1> num1 );
arr = (int *) calloc ( num1 , sizeof (int) );
if ( NULL == arr) exit ( 1);
fazer {
printf (" Digite outro número inteiro positivo : ");
scanf ( "% d " , & num2 );
while (1 > num2 );
arr = (int *) realloc ( arr, num2 * sizeof ( int) );
if ( NULL == arr) exit ( 1);
//etc
6

Solte um bloco de memória alocada nas Etapas 3 a 5 usando free () . "Livre" libera o bloco de memória que começa no local da memória " ptr " apontou para
Protótipo: .
Void free (void * ptr );
Exemplo:
int * buf ;
buf = (int *) malloc ( 100 * sizeof ( int) );
livre ( buf );
//etc

Anterior :

Próximo : No
  Os artigos relacionados
·Conversor de Temperatura em C + + Usando funções 
·Chamar função de objeto C + + sintaxe 
·Como instalar os compiladores C + + para Netbeans 
·MFC ActiveX Tutorial 
·Como abrir um arquivo em C + + para leitura 
·Como tirar uma String de um arquivo de entrada e revert…
·Como abrir vários arquivos de Entrada e Saída em C + …
·Um tutorial sobre Alertas iPhone SDK 
·Como incluir um arquivo de cabeçalho 
·Malloc Função 
  Artigos em destaque
·Como construir uma barra de progresso no XCode 
·Como habilitar a detecção vazamento de memória 
·Como usar Portas COM no Visual C 
·Silverlight 2 Tutorial Custom Control 
·Como preencher um DataReader Usando Statement 
·Como declarar funções inline em C + + 
·Como determinar um tamanho inteiro em C + + 
·Como declarar uma string constante em Programação C 
·Como usar Breadcrumbs em Masterpage 
·Como criar um vetor de strings em C + + 
Cop e direita © Conhecimento computador https://ptcomputador.com Todos os Direitos Reservados