quarta-feira, 21 de março de 2012

Dicas de Programação: Como instanciar uma variável dentro de uma função em C?

Não sei se isso ajuda muita gente... Mas, para instanciar uma variável em uma função de C, pode-se fazer assim:

#include <stdio.h>
#include <stdlib.h>
//Tipo "registro": estrutura que possui uma variavel id do tipo inteiro
typedef struct registro
{
int id;
} registro;

//Função que recebe um ponteiro de um ponteiro da estrutura "registro"
void iniciarRegistro(registro** reg)
{
       //Aloco memória para a estrutura "registro"
      *reg = (registro*) malloc(sizeof(registro));
      //Seto o id como 10
      (*reg)->id = 10;
}

//Função principal
int main(int num_args, char** arg)
{
     //Objeto r do tipo "registro", sem instância (NULL)
      registro* r = NULL;
     //Chamo a função para instanciar r (passo r como paramêtro)
      iniciarRegistro(&r);
     //Escrevo o valor na tela (10)
      printf("Registro ID: %d\n", r->id);
     //Libero memória
      free(r);
     //Termino a aplicações com status OK
      return 0;
}

E não é que funciona mesmo? :P

Até mais!

Nenhum comentário: