Академический Документы
Профессиональный Документы
Культура Документы
PONTEIRO – STRUCT
Conversa Inicial
STRUCT DE PONTEIROS
STRUCT – FUNÇÃO
ALOCAÇÃO DINÂMICA – CALLOC() E FREE()
ALOCAÇÃO DINÂMICA – MALLOC() E
REALLOC()
1
PONTEIRO – STRUCT PONTEIRO – STRUCT
PONTEIRO – STRUCT
/* (*depois).dia = 28;
int main(){
(*depois).mes = 09;
(*depois).ano = 2018; */
struct calendario{
int dia;
int mes; depois->dia = 28;
int ano; depois->mes = 9;
}; struct calendario agora, *depois; depois->ano = 2018;
2
//printf("%i/%i/%i\n\n",(*depois).dia,(*depoi
s).mes, (*depois).ano);
printf("%i/%i/%i\n\n", depois->dia,
depois->mes, depois->ano); Struct de ponteiros
system("pause");
return 0;
}
Strucut de Ponteiros
#include<stdio.h>
#include<stdlib.h>
int main(){
Ponteiros também podem ser definidos como
componentes de estruturas, basta colocar o struct calendario{
operador ‘*’ asterisco antes dos int *dia;
int *mes;
componentes de uma struct
int *ano;
}; struct calendario atual;
3
Struct - Função
Por valor
Por referência
#include <stdio.h>
Passagem de uma struct por valor #include <stdlib.h>
struct p_valor{
int a,b;
Uma cópia do componente da struct é usada
};
e alterada dentro da função sem afetar a
variável da estrutura, na memória, da qual void imprimir_soma_valor(int num);
ela foi gerada
int main(){
//Passagem de um campo por valor
4
#include <stdio.h>
Passagem de uma struct por referência #include <stdlib.h>
px->a=201;
px->b=302;
5
A função calloc( ) #include <stdio.h>
#include <stdlib.h>
Cria um vetor com tamanho dinâmico
Serve para alocar memória durante a int main()
{
execução do programa int *px;
Faz o pedido de memória ao computador e
retorna um ponteiro com o endereço do início px = (int*) calloc(4, sizeof(int));
if(px == NULL){
do espaço alocado
printf("ERRO! Não tem memória
Preenche com zero todos os bits suficiente.");
exit(1); // finaliza o programa.
void* calloc(unsigned int nElementos, unsigned int
tElemento);
}
int main()
{
px = (int*) calloc(4, sizeof(int));
if(px == NULL){
printf("ERRO! Não tem memória suficiente.");
exit(1); // finaliza o programa. Alocação Dinâmica
} MALLOC() e REALLOC ()
...
free(px);
system("pause");
return 0;
}
6
A função malloc( ) #include <stdio.h>
#include <stdlib.h>
Parecida com a função calloc();
int main()
Com uma grande diferença, essa função não {
coloca zero nos bits do espaço alocado int *px;
int i;