#include <stdio.h> 
#include <stdlib.h> 
#include <locale.h> 
 
typedef  struct  { 
    int  matricula; 
    float  salario; 
}  Funcionario; 
 
int  ler_dados( void )  { 
    int  dado; 
    printf ( "Digite a matrícula:\t " ) ;      return  dado;  
} 
float  ler_salario( void )  { 
      float  salario; 
      printf ( "Digite o valor do salário:\t " ) ;        return  salario; 
} 
int  inserir_funcionario( Funcionario ** funcionarios,  int  tamanho)  { 
    * funcionarios 
=  realloc ( * funcionarios
,  sizeof ( Funcionario
)  *  ( tamanho 
+  1 ) ) ;      ( * funcionarios) [ tamanho] .matricula  =  ler_dados( ) ; 
    ( * funcionarios) [ tamanho] .salario  =  ler_salario( ) ; 
    return  ++ tamanho; 
} 
int  main( void )  { 
    Funcionario 
* funcionarios 
=  malloc ( sizeof ( Funcionario
) ) ;     int  tamanho =  0 ; 
    for  ( int  i =  0 ;  i <  5 ;  i++ )  { 
        printf ( "Sizeof : %lu\n " ,  sizeof ( Funcionario
) ) ;          printf ( "Executou: %d\n " ,  i 
+  1 ) ;          printf ( "Tamanho: %d\n \n " ,  tamanho
) ;          tamanho =  inserir_funcionario( & funcionarios,  tamanho) ; 
        printf ( "\n dado: %d\n \n " ,  funcionarios
[ tamanho
] .
matricula ) ;      } 
} 
 
//https://pt.stackoverflow.com/q/326686/101 
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGxvY2FsZS5oPgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgaW50IG1hdHJpY3VsYTsKICAgIGZsb2F0IHNhbGFyaW87Cn0gRnVuY2lvbmFyaW87CgppbnQgbGVyX2RhZG9zKHZvaWQpIHsKICAgIGludCBkYWRvOwogICAgcHJpbnRmKCJEaWdpdGUgYSBtYXRyw61jdWxhOlx0Iik7CiAgICBzY2FuZigiICVkIiwgJmRhZG8pOwogICAgcmV0dXJuIGRhZG87IAp9CmZsb2F0IGxlcl9zYWxhcmlvKHZvaWQpIHsKICAgICAgZmxvYXQgc2FsYXJpbzsKICAgICAgcHJpbnRmKCJEaWdpdGUgbyB2YWxvciBkbyBzYWzDoXJpbzpcdCIpOwogICAgICBzY2FuZigiICVmIiwgJnNhbGFyaW8pOwogICAgICByZXR1cm4gc2FsYXJpbzsKfQppbnQgaW5zZXJpcl9mdW5jaW9uYXJpbyhGdW5jaW9uYXJpbyAqKmZ1bmNpb25hcmlvcywgaW50IHRhbWFuaG8pIHsKICAgICpmdW5jaW9uYXJpb3MgPSByZWFsbG9jKCpmdW5jaW9uYXJpb3MsIHNpemVvZihGdW5jaW9uYXJpbykgKiAodGFtYW5obyArIDEpKTsKICAgICgqZnVuY2lvbmFyaW9zKVt0YW1hbmhvXS5tYXRyaWN1bGEgPSBsZXJfZGFkb3MoKTsKICAgICgqZnVuY2lvbmFyaW9zKVt0YW1hbmhvXS5zYWxhcmlvID0gbGVyX3NhbGFyaW8oKTsKICAgIHJldHVybiArK3RhbWFuaG87Cn0KaW50IG1haW4odm9pZCkgewogICAgc2V0bG9jYWxlKExDX0FMTCwiUG9ydHVndWVzZSIpOwogICAgRnVuY2lvbmFyaW8gKmZ1bmNpb25hcmlvcyA9IG1hbGxvYyhzaXplb2YoRnVuY2lvbmFyaW8pKTsKICAgIGludCB0YW1hbmhvID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJTaXplb2YgOiAlbHVcbiIsIHNpemVvZihGdW5jaW9uYXJpbykpOwogICAgICAgIHByaW50ZigiRXhlY3V0b3U6ICVkXG4iLCBpICsgMSk7CiAgICAgICAgcHJpbnRmKCJUYW1hbmhvOiAlZFxuXG4iLCB0YW1hbmhvKTsKICAgICAgICB0YW1hbmhvID0gaW5zZXJpcl9mdW5jaW9uYXJpbygmZnVuY2lvbmFyaW9zLCB0YW1hbmhvKTsKICAgICAgICBwcmludGYoIlxuZGFkbzogJWRcblxuIiwgZnVuY2lvbmFyaW9zW3RhbWFuaG9dLm1hdHJpY3VsYSk7CiAgICB9Cn0KCi8vaHR0cHM6Ly9wdC5zdGFja292ZXJmbG93LmNvbS9xLzMyNjY4Ni8xMDE=