Hallo, en welkom terug.
We hebben weer een uitdaging voor je.
Deze uitdaging gaat weer over structuren gaan.
Het zal je bekend maken met elementen in een structuur die
een aanwijzer bevatten.
Dus je moet toewijzen geheugen voor dat element.
Het zal je ook bekend maken met het declareren van een
structuur als een aanwijzer en ook het doorgeven van een structuur als een verwijzing naar een functie.
Dus vooral structuren en tips in deze uitdaging.
Dus je moet een c-programma schrijven die een structuuraanwijzer maakt en
deze doorgeeft aan een functie.
Maak een structuur met de naam item met de volgende leden.
Een itemnaam die zou moeten een karakteraanwijzer zijn.
Een hoeveelheid, die een int zou moeten zijn.
Een prijs moet een float zijn en het bedrag moet een float zijn.
Het bedrag dat is opgeslagen in de structuur zal
in wezen de hoeveelheid maal de prijs zijn, omdat dat zou het totaalbedrag zijn.
Ik wil dat je twee functies maakt.
Ik wil dat je een functie maakt genoemd gelezen item
dat een structuuraanwijzer van het type item neemt als een parameter moet een pointer zijn.
We kennen de voordelen van functies het nemen van aanwijzingen als argumenten in tegenstelling
tot een reguliere structuur, voornamelijk omdat ze achterwaarts compatibel zijn.
Vorige versies van de c-compiler werkte niet met structuren.
En het is ook een stuk sneller en efficiënter wanneer u
een aanwijzer doorgeeft aan een functie omdat je hoeft niet alle elementen
te kopiëren, je kopieert alleen het adres.
Dus we gaan functies hebben die als parameters verwijzen
naar structuren.
Dit gelezen item gaat door.
Wat deze functie zou moeten doen? is, het zou
van de gebruiker een productnaam, een prijs moeten inlezen en een hoeveelheid of een itemnaam.
De inhoud zou moeten zijn in het verleden in structuur opgeslagen.
Dus je passeert een verwijzing naar een structuur waarin u deze
wilt opslaan.
Ik wil dat je er nog een maakt functie met de naam print item.
Dit neemt ook als parameter structuuraanwijzer van het type item.
Deze functie wordt afgedrukt de inhoud van de parameter.
Dus je gaat gewoon om wat printfs te doen.
Dat zal vrij basaal zijn.
In de hoofdfunctie wilt u: om een item in feite een
item van de aanwijzerstructuur te declareren of declareer een item en een aanwijzer van de structuur, want dan
heb je kan toewijzen aan het punt
van het item, het adres van het item.
En dan moet je ook toewijzen geheugen voor de itemnaamaanwijzer.
Dus onthoud, de naam van het item: element in de structuur is karaktergericht, wat
betekent dat jij moet er geheugen voor toewijzen.
Als het een personage was array, dat zou je niet hoeven te doen.
Maar onthoud, als je een element hebt als een karakteraanwijzer, het enige
dat het doet, is geheugen creëren voor de werkelijke adres, de waarde van die aanwijzer.
Het creëert geen geheugen voor waar het naar verwijst.
Dus als je een letterlijke constante toewijst ernaartoe kan het overal in het geheugen zijn.
Dus je wilt toewijzen geheugen
voor dat itemnaamelement in de structuur.
De itemaanwijzer zou moeten zijn: doorgegeven aan zowel
het lezen van de afdrukitemfuncties.
Dus nogmaals wat deze uitdaging zal helpen jij met is het begrijpen van aanwijzingen hoe je
ze kunt gebruiken als lid binnenin een structuur en dan ook hoe
je ze doorgeeft en je hebt wat oefening met het doen van wat malloc ook.
En vergeet dan niet, wanneer dan ook je doet een malloc, je moet
een gratis doen, dus zorg ervoor dat je voeg dat toe aan je programma.
Veel geluk.
Ik zal een oplossing bieden in de volgende lezing.
Wat betreft het verkleinen van de maat, kunt u: kies gewoon een willekeurige grootte zoals
30 tekens of iets dergelijks.
Je hoeft het niet in te lezen.
Laat het me weten als je vragen hebt. Dank u.