Skip to content

Instantly share code, notes, and snippets.

@nenodias
Last active March 11, 2016 22:21
Show Gist options
  • Save nenodias/6be10ebf39542db3a14b to your computer and use it in GitHub Desktop.
Save nenodias/6be10ebf39542db3a14b to your computer and use it in GitHub Desktop.
Exemplos em C
/*
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <locale.h> //necessário para usar setlocale
#include <malloc.h>
struct Pessoa{
int idade;
char* nome;
};
int soma(int a, int b ){
return a + b;
}
int multiplicacao(int a, int b ){
return a * b;
}
/* Ponteiro para Função */
/* tipo_retorno, nome_ponteiro, parâmetros */
typedef int (*operacao_funcao)(int, int);
int calculo(int valor1, int valor2, operacao_funcao operacao){
return operacao(valor1, valor2);
}
int main(void){
setlocale(LC_ALL,"");
//Criando um ponteiro apontando para espaço vazio / NULO
int* p_numero = NULL;
//aloca espaço na memória para um ipo inteiro
p_numero = (int *)malloc( sizeof(int) );
//Alterando o valor dentro do endereço de memória do ponteiro p_numero
*p_numero = 2;
//Mostrando o endereço da memória
printf("Endereço do Ponteiro: %d\n", p_numero);
//Usando o * para acessar o valor dentro dessa memória
printf("Valor dentro do Ponteiro: %d\n", *p_numero);
//Limpando espaço da memória
free(p_numero);
int valor = 5;
//p_numero recebe o endereço de valor
p_numero = &valor;
printf("Valor dentro do Ponteiro: %d\n", *p_numero);
//Alterando o "valor" que é a variavel que o ponteiro p_numero está apontando
*p_numero = 3;
printf("Valor dentro do Ponteiro: %d\n", *p_numero);
printf("Valor dentro do valor: %d\n", valor);
//Ponteiro pra struct
struct Pessoa * usuario = (struct Pessoa *)malloc( sizeof(struct Pessoa) );
printf("\nDigite seu nome:");
//Alocando espaço
usuario->nome = (char*)malloc(100);
scanf("%s", usuario->nome);
printf("Digite sua idade:");
scanf("%i", &usuario->idade);
printf("Olá %s, você tem %d anos de idade\n", usuario->nome, usuario->idade );
printf("Calculo %d \n", calculo(2, 4, soma) );
printf("Calculo %d \n", calculo(2, 4, multiplicacao) );
system("pause");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment