malloc
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| — | malloc [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1 | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | A função | ||
| + | <code c> | ||
| + | char ptr; | ||
| + | ptr = malloc (1); | ||
| + | scanf (" | ||
| + | </ | ||
| + | O endereço devolvido por malloc é do tipo " | ||
| + | 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> | ||
| + | # | ||
| + | #include < | ||
| + | |||
| + | |||
| + | | ||
| + | int dia, mes, ano; | ||
| + | } data; | ||
| + | |||
| + | |||
| + | int main(int argc, char *argv[]) | ||
| + | { | ||
| + | |||
| + | data d; | ||
| + | data *datapointer; | ||
| + | |||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | |||
| + | | ||
| + | |||
| + | |||
| + | system(" | ||
| + | return 0; | ||
| + | } | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | [As aparências enganam: [[sizeof|sizeof]] não é uma função.] | ||
| + | |||
| + | Overhead. Cada invocação de malloc aloca um bloco de bytes consecutivos maior que o solicitado: os bytes adicionais são usados para guardar informações administrativas sobre o bloco de bytes (essas informações permitem que o bloco seja corretamente desalocado, mais tarde, pela função free). | ||
| + | |||
| + | <code c> | ||
| + | |||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | |||
| + | char *IntToChar(int *Number){ | ||
| + | char retorno; | ||
| + | char *ptr = & | ||
| + | ptr = malloc((int)sizeof(Number)); | ||
| + | itoa((int)Number , ptr,10); | ||
| + | return ptr; | ||
| + | } | ||
| + | |||
| + | int main(int argc, char *argv[]) | ||
| + | { | ||
| + | printf(" | ||
| + | system(" | ||
| + | return 0; | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Teoria retirada do site | ||
| + | http:// | ||