3
I’m doing a program that works as a payroll system, but I’m having trouble with the dynamic allocation part. The program runs only once and stops. No int(main) i put:
    printf("Sizeof : %d\n",sizeof(funcionarios));
    printf("Executou: %d\n",i+1);
    printf("Tamanho: %d\n\n",tamanho);
To try to identify where the error was. In the second execution sizeof() returns the same value which led me to believe that the realloc() did not reallocate the memory. I may be wrong, I am still learning. I ask for help from someone more enlightened than me. 
Complete code below:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
typedef struct{
    int matricula;
    float salario;
}Funcionario;
int ler_dados(void){
    int dado;
    printf("Digite a matrícula:\t");
    scanf(" %d",&dado);
    return dado; 
}
float ler_salario(void){
      float salario;
      printf("Digite o valor do salário:\t");
      scanf(" %f",&salario);
      return salario;
}
int inserir_funcionario(Funcionario *funcionarios, int tamanho){
    int qntd = sizeof(funcionarios) * (tamanho + 1);
    funcionarios = realloc(funcionarios, qntd);
    funcionarios[tamanho].matricula = ler_dados();
    funcionarios[tamanho].salario = ler_salario();
    tamanho++;
    return tamanho;
}
int main(void){
    setlocale(LC_ALL,"Portuguese");
    int i;
    Funcionario *funcionarios = malloc(sizeof(funcionarios));
    int tamanho = 0;
    for(i=0; i<5; i++)
    {
        printf("Sizeof : %d\n",sizeof(funcionarios));
        printf("Executou: %d\n",i+1);
        printf("Tamanho: %d\n\n",tamanho);
        tamanho = inserir_funcionario(funcionarios, tamanho);
    }
}