Como alocar espaço para uma estrutura em c programação

Quando a função malloc () em programação C precisa de exercício, ele se volta para a estrutura - uma estrutura após o outro, cada um deles sentado em um novo local na memória, graças a malloc (). Será que eles se perder? Não! Porque cada estrutura mantém um registo da seguinte estrutura como elos de uma corrente.

A função malloc () anular espaço para todos os tipos variáveis ​​de C, incluindo matrizes. Ele também pode espremer uma estrutura na memória, fazendo um pequeno bolso bom para a coisa, todos referenciados a partir de um ponteiro.

Quando o armazenamento de moda para uma nova estrutura usando um ponteiro, ou quando você fazer referência a uma estrutura usando um ponteiro, um novo operador C entra em jogo: o -gt; coisa, que é oficialmente conhecido como o estrutura operador ponteiro. Este operador é equivalente a estrutura de ponteiro do ponto. Considerando que a notação membro estrutura tradicional parecido com este:

date.day = 14-

o mesmo membro quando referenciada através de um ponteiro de estrutura se parece com isso:

data-gt; dia = 14-

Por que a notação Peeker não o * usado? Bem, poderia ser. O formato original para um membro de estrutura referenciada a partir de um ponteiro é a seguinte:



(* Data) .dia = 14-

Os parênteses são necessários a fim de se ligar ao operador * ponteiro até à data, a variável ponteiro estrutura nome- de outra forma, o. operador teria precedência. Mas por alguma razão, os programadores C primitivos detestava esse formato, por isso eles foram com -gt; em vez de.

Criando um Portfolio Structured demonstra como uma estrutura podem ser criados usando a função malloc (). A estrutura é definida na Linha 7, e uma variável de ponteiro de que tipo de estrutura é declarado na Linha 12. Na linha 15, malloc () aloca armazenamento suficiente para uma estrutura. O tamanho da estrutura é determinada usando o operador sizeof.

Criação de uma carteira ESTRUTURADO

#include #include #include int () {struct estoque {símbolo char [5] preço principal -int quantidade-float -} - Stock struct * investir - / * Criar estrutura na memória * / investir = (estoque struct *) malloc ( sizeof (struct estoque)) - if (investir == null) {puts ("Algum tipo de malloc () erro") -exit (1) -} / * Atribuir estrutura de dados * / strcpy (investir-gt; símbolo,"GOOG") -INVEST-gt; quantidade = 100-Invest-gt; preço = 801,19 - / * banco de dados Mostrar * / puts ("Carteira de Investimentos") -printf ("SymboltSharestPricetValuen") -printf ("% -6st% 5DT% 0,2 pés% .2fn", Investir-gt; símbolo, investir-gt; quantidade, investir-gt; preço, investir-gt; quantidade * investir-gt; preço) -Retornar (0) -}

A investir referências ponteiro da nova estrutura esculpida em memória. Linhas 23 a 25 de encher a estrutura com alguns dados. Em seguida, linhas 28 a 34 mostram os dados. Cuidadosamente observe como a -gt; operador é usado para referenciar os membros da estrutura.

Exercício 1: Criar um novo projeto usando o código-fonte de criação de uma carteira estruturada. Construir e executar.


Publicações relacionadas