Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
malloc [d/mY H:i]
jmurray criada
malloc [d/mY H:i] (atual)
jmurray
Linha 1: Linha 1:
 A função ​ malloc ​ (abreviatura de memory allocation) aloca um bloco de bytes consecutivos na memória do computador e devolve o endereço desse bloco. ​ O número de bytes é especificado no argumento da função. No seguinte fragmento de código, malloc aloca 1 byte: A função ​ malloc ​ (abreviatura de memory allocation) aloca um bloco de bytes consecutivos na memória do computador e devolve o endereço desse bloco. ​ O número de bytes é especificado no argumento da função. No seguinte fragmento de código, malloc aloca 1 byte:
 <code c> <code c>
-   ​char ​*ptr;+   char ptr;
    ptr = malloc (1);    ptr = malloc (1);
    scanf ("​%c",​ ptr);    scanf ("​%c",​ ptr);
Linha 9: Linha 9:
 Para alocar um tipo-de-dado que ocupa vários bytes, é preciso recorrer ao operador sizeof, que diz quantos bytes o tipo especificado tem: Para alocar um tipo-de-dado que ocupa vários bytes, é preciso recorrer ao operador sizeof, que diz quantos bytes o tipo especificado tem:
 <code c> <code c>
-   ​typedef struct { +   #include <​stdio.h>​ 
-      int dia, mes, ano;  +#include <​stdlib.h>​ 
-   ​} data; + 
-   ​data ​*d; + 
-   d = malloc (sizeof (data)); + typedef struct { 
-   d->dia = 31; d->mes = 12; d->ano = 2008;+   ​int dia, mes, ano;  
 +} data; 
 + 
 +  
 +int main(int argc, char *argv[]) 
 +
 +  
 +   data d; 
 +   data *datapointer;​ 
 +    
 +   ​datapointer = &d
 +    
 +   ​datapointer ​= malloc (sizeof (data)); 
 +   datapointer->dia = 31;  
 +   ​datapointer->mes = 12;  
 +   ​datapointer->ano = 2008; 
 +    
 +    
 +   ​printf("​%d/​%d%/​%d\n",​datapointer->​dia,​datapointer->​mes,​datapointer->​ano);​ 
 + 
 + 
 +  system("​PAUSE"​);​  
 +  return 0; 
 +
        
 </​code>​ </​code>​
Linha 26: Linha 50:
 #include <​stdio.h>​ #include <​stdio.h>​
 #include <​stdlib.h>​ #include <​stdlib.h>​
- +  
 + 
 char *IntToChar(int *Number){ char *IntToChar(int *Number){
-  char *retorno; ​  ​ +  char retorno; ​    
-  retorno = malloc((int)sizeof(Number)); ​  +  ​char *ptr = &retorno;   
-  itoa((int)Number , retorno,10); +  ptr = malloc((int)sizeof(Number)); ​  
-  return ​retorno;+  itoa((int)Number , ptr,10); 
 +  return ​ptr;
 } }
 + 
 int main(int argc, char *argv[]) int main(int argc, char *argv[])
 { {
Linha 43: Linha 68:
  
 </​code>​ </​code>​
 +
 +Teoria retirada do site 
 +http://​www.ime.usp.br/​~pf/​algoritmos/​aulas/​aloca.html
malloc.1311883456.txt.gz · Última modificação: d/mY H:i por jmurray
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0