Liberando a memória
Quando você terminou com memória que estêve alocada, você deve nunca esquecer-se de livrar a memória porque livrará acima recursos e melhorará a velocidade. Liberar-se alocou a memória, usa a função livre.
free(ptr);
Estruturas
As well as os tipos de dados básicos, C tem um mecanismo da estrutura que permita que você agrupe os artigos de dados que se são relacionados sob um nome comum. Isto é consultado geralmente como a um usuário - tipo definido.
O struct do keyword começa a definição da estrutura, e um Tag dá o nome original à estrutura. Os tipos de dados e os nomes variáveis adicionados à estrutura são membros da estrutura. O resultado é um molde da estrutura que possa ser usado como um tipo specifier. O seguinte é uma estrutura com um Tag do mês.
struct month
{
char name[10];
char abbrev[4];
int days;
};
Um tipo da estrutura é definido geralmente próximo ao começo de uma lima usando uma indicação do typedef. o typedef define e nomeia um tipo novo, permitindo seu uso durante todo o programa. o typedef ocorre geralmente imediatamente depois das indicações do #define e do #include em uma lima.
O keyword do typedef pode ser usado definir uma palavra para consultar à estrutura melhor que a especificar o keyword do struct com o nome da estrutura. É usual nomear em maiúsculo o typedef. Estão aqui os exemplos da definição da estrutura.
typedef struct {
char name[64];
char course[128];
int age;
int year;
} student;
Isto define um tipo novo estudante que as variáveis do tipo estudante podem ser declaradas como segue.
student st_rec;
Observação como similar isto é a declarar um interno ou um flutuador. O nome variável é st_rec, ele tem os membros chamados nome, curso, idade e ano. Similarmente,
typedef struct element
{
char data;
struct element *next;
} STACKELEMENT;
Uma variável do usuário - o tipo definido elemento do struct pode agora ser declarado como segue.
STACKELEMENT *stack;
Considerar a seguinte estrutura:
struct student
{
char *name;
int grade;
};
Um ponteiro ao estudante do struct pode ser definido como segue.
struct student *hnc;
Ao alcançar um ponteiro a uma estrutura, o operador do ponteiro do membro, - > é usado em vez do operador do ponto. Para adicionar uma classe a uma estrutura,
s.grade = 50;
Você poderia atribuir uma classe à estrutura como segue.
s->grade = 50;
Como com os tipos de dados básicos, se você quiser as mudanças feitas em uma função aos parâmetros passados para ser persistente, você tem que passar pela referência (passar o endereço). O mecanismo é exatamente o mesmo que os tipos de dados básicos. Passar o endereço, e consultar à notação usando-se variável do ponteiro.
|