Ciao e bentornato.
Abbiamo un'altra sfida per te.
Questa sfida sta andando a si tratta di nuovo di strutture.
Ti renderà familiare con elementi in una struttura che contengono
un puntatore.
Quindi devi allocare memoria per quell'elemento.
Ti farà anche familiarizzare con la dichiarazione di una struttura
come puntatore e anche il passaggio di una struttura come un puntatore a una funzione.
Quindi principalmente strutture e suggerimenti in questa sfida.
Quindi è necessario scrivere un programma c che crea un puntatore a struttura e
lo passa a una funzione.
Crea una struttura denominata elemento con i seguenti membri.
Un nome di elemento che dovrebbe essere un puntatore di caratteri.
Una quantità, che dovrebbe essere un int.
Un prezzo dovrebbe essere un galleggiante e l'importo dovrebbe essere un galleggiante.
L'importo memorizzato nel file la struttura sarà
essenzialmente la quantità moltiplicata per il prezzo perché quello sarebbe l'importo totale.
Voglio che crei due funzioni.
Voglio che crei una funzione elemento di lettura denominato che
accetta un puntatore a struttura di tipo elemento come un parametro dovrebbe essere un puntatore.
Conosciamo i vantaggi delle funzioni prendendo i puntatori come argomenti invece di una
struttura regolare, principalmente essendo compatibili con le versioni precedenti.
Versioni precedenti del compilatore c non ha funzionato con le strutture.
Ed è anche molto più veloce e più efficiente quando
si passa un puntatore a una funzione perché non devi copiare
tutti gli elementi, copi solo l'indirizzo.
Quindi avremo funzioni che prendono come parametri puntatori
a strutture.
Questo elemento letto assumerà.
Cosa dovrebbe fare questa funzione è, dovrebbe leggere dall'utente
un nome di prodotto, un prezzo e una quantità o il nome di un articolo.
Il contenuto giusto dovrebbe essere archiviati in passato nella struttura.
Quindi stai passando in un file puntatore a una struttura in cui
si desidera memorizzarla.
Voglio che tu ne crei un altro funzione denominata elemento di stampa.
Anche questo prende come parametro puntatore struttura di tipo elemento.
Questa funzione verrà stampata il contenuto del parametro.
Quindi stai solo andando per fare un po 'di printfs.
Sarà piuttosto semplice.
Nella funzione principale, vuoi per dichiarare un elemento
fondamentalmente un elemento della struttura del puntatore oppure dichiara un elemento e un puntatore
della struttura perché allora tu
può assegnare al punto dell'articolo, l'indirizzo dell'articolo.
E poi devi anche allocare memoria per il puntatore del nome dell'elemento.
Quindi ricorda, il nome dell'oggetto l'elemento all'interno della struttura è il carattere indicato che
significa te devo allocare memoria per questo.
Se fosse un personaggio array, non dovresti.
Ma ricorda, quando hai un elemento come puntatore di caratteri, tutto ciò
che fa è creare memoria per il reale indirizzo, il valore di quel puntatore.
Non crea memoria per quello a cui punta.
Quindi, se assegni una costante letterale ad esso, potrebbe essere ovunque nella memoria.
Quindi vuoi allocare memoria per
quell'elemento nome elemento all'interno della struttura.
Il puntatore dell'elemento dovrebbe essere passato in entrambe le
funzioni di lettura dell'elemento di stampa.
Quindi ancora una volta ciò che questa sfida aiuterà è capire come usarli come
membri all'interno di una struttura e poi anche come passarle in
giro e hai un po 'di pratica facendo anche un po 'di malloc.
E poi non dimenticare, ogni volta fai un malloc,
devi farlo gratuitamente, quindi assicurati di farlo aggiungilo al tuo programma.
Perciò buona fortuna.
Fornirò una soluzione nella prossima lezione.
Per quanto riguarda le dimensioni, puoi basta scegliere una dimensione arbitraria come 30
caratteri o qualcosa del genere.
Non devi leggerlo.
Fatemi sapere se avete domande. Grazie.