Olá, seja bem-vindo de volta.
Temos outro desafio para você.
Este desafio vai ser sobre estruturas novamente.
Isso vai te deixar familiar com elementos em uma estrutura que
contém um ponteiro.
Então você tem que alocar memória para esse elemento.
Isso também vai deixá-lo familiarizado com declarar uma estrutura
como um ponteiro e também passar uma estrutura como um ponteiro para uma função.
Portanto, principalmente estruturas e ponteiros neste desafio.
Então você precisa escrever um programa c que cria um ponteiro de estrutura e
o passa para uma função.
Crie uma estrutura chamada item com os seguintes membros.
Um nome de item que deve ser um ponteiro de personagem.
Uma quantidade, que deve ser um int.
Um preço deve ser flutuante e o valor deve ser uma flutuação.
A quantidade que está armazenada no estrutura vai
ser essencialmente a quantidade vezes o preço, porque esse seria o valor total.
Eu quero que você crie duas funções.
Eu quero que você crie uma função item de leitura nomeado
que leva um ponteiro de estrutura do tipo item como um parâmetro deve ser um ponteiro.
Conhecemos as vantagens das funções tomando ponteiros como argumentos em oposição a uma
estrutura regular, principalmente sendo eles compatíveis com versões anteriores.
Versões anteriores do compilador c não funcionou com estruturas.
E também é muito mais rápido e mais eficiente quando você
passa um ponteiro para uma função porque você não precisa copiar todos
os elementos, apenas copie o endereço.
Teremos funções que tomam como parâmetros ponteiros
para estruturas.
Este item de leitura será executado.
O que esta função deve fazer ou seja, ele deve
ler do usuário um nome de produto, um preço e uma quantidade ou um nome de item.
O conteúdo certo deve ser armazenados no passado na estrutura.
Então você está passando por um ponteiro para uma estrutura onde você
deseja armazená-lo.
Eu quero que você crie outro função chamada item de impressão.
Isso também leva como um parâmetro ponteiro de estrutura do tipo de item.
Esta função irá imprimir o conteúdo do parâmetro.
Então você está indo para fazer alguns printfs.
Isso será muito básico.
Na função principal, você quer declarar um item basicamente
um item da estrutura do ponteiro ou declara um item e um ponteiro da estrutura
porque então você pode atribuir ao
ponto do item, o endereço do item.
E então você também precisa alocar memória para o ponteiro do nome do item.
Então lembre-se, o nome do item elemento dentro da estrutura é um caractere apontado que
significa que você tem que alocar memória para ele.
Se fosse um personagem array, você não teria que fazer isso.
Mas lembre-se, quando você tem um elemento como um ponteiro de personagem,
tudo o que ele faz é criar memória para o real endereço, o valor desse ponteiro.
Não cria memória para o que está apontando.
Então, se você atribuir uma constante literal para ele, pode estar em qualquer lugar na memória.
Então você deseja alocar memória para esse
elemento de nome de item dentro da estrutura.
O ponteiro do item deve ser passou para a leitura
das funções de impressão do item.
Então, novamente, o que esse desafio ajudará você está entendendo dicas de como usá-los
como um membro dentro de uma estrutura e também como distribuí-los
e você tem alguma prática com fazer um pouco de malloc também.
E então não se esqueça, sempre você faz um malloc, você
tem que fazer um livre, então certifique-se de adicione isso ao seu programa.
Então boa sorte.
Vou fornecer uma solução na próxima aula.
Quanto ao tamanho, você pode basta escolher um tamanho arbitrário, como 30
caracteres ou algo parecido.
Você não tem que ler.
Deixe-me saber se você tiver alguma dúvida. Obrigada.