Bibliotecas stdlib.h: biblioteca padrão que possui funções de alocação de memória,processos, conversões e outras.
malloc
protótipo:
void * malloc(size_t size);
calloc
protótipo:
void * calloc(size_t number_elements, size_t size);
Ambos servem para alocar memória dinamicamente, porém de diferem na forma como são iniciados, pois o malloc ele apenas aloca os blocos de memória e caso haja lixo naquela bloco ele não será apagado. Já o calloc ele inicializa cada bloco de memória igual a 0 de forma padrão.
const int MAXIMO = 20;
int *ponteiro = malloc(MAXIMO * sizeof(int));
//ou
int *ponteiro = malloc(MAXIMO, sizeof(int));
OBSERVAÇÃO: O uso de type casting, neste caso (int *), não é necessário, porém, pode ser considerado uma boa prática.
realloc
protótipo:
void* realloc(void* ptr, size_t size);
Como o próprio nome diz serve para realocar o ponteiro, ou seja, quando a quantidade máxima é atingida, chama-se o realloc para realocar
int realocacao(lista *l){
l->dados = realloc(l->dados, 2*l->MAX* sizeof(int)); // dobrando o MAX do ponteiro de inteiros
if(l->dados == NULL)// verifica se a realocacao falhou
return 0;
l->MAX *= 2; // atribui o dobro ao maximo
return 1; // retorna que a realocacao foi bem sucedida
}
free()
, libera a memória alocada
size_t size
: quantidades de bytes que será alocado
OBSERVAÇÃO: acabei perdendo algumas questões, pois formatei o computador e esqueci de fazer um backup das questões, então refiz as questões que estavam disponíveis no listão das férias.
Apenas mostrar "Ola Mundo!" na tela
Faixa de consumo(m³) | Preço por m³ |
---|---|
Até 10m³ | franquia cobre |
11 a 30m³ | R$ 1 |
31 a 100m³ | R$ 2 |
101 a diante | R$ 5 |
Potenciação - RECURSIVA
Régua Inglesa - RECURSIVA
Soma dígitos - RECURSIVA
String ao contrário - RECURSIVA
Conta 7s - RECURSIVA
END OF FILE ou EOF ou -1
no linux é ativado com o comando 'CTRL + D' e no windows 'CTRL + Z'gcc --version
, para ver a versão do compilador da sua máquinagcc -o arquivo arquivo.c
para compilar normalmente-o2
para questões de optimização do próprio compilador, existem outras melhorias que podem ser aplicadas, porém, não sei dizer muito sobre o assunto.- Para acrescentar a biblioteca math.h na compila, deve acrescentar
-lm