Bună ziua bun venit.
Deci, fi ultima noastră sarcină, ultima noastră provocare pentru secțiunea noastră POINAR și această provocare vreau să
înțelegeți cum funcționează alocarea dinamică a memoriei.
Deci nu aveți nevoie de Mallick un șir.
Acesta va fi destul de bază, dar vă va înțelege întregul concept de alocare dinamică a memoriei.
Care sunt avantajele alocării dinamice a memoriei.
Ei bine, înseamnă că puteți aloca suficientă memorie atunci când aveți nevoie de ea.
Nu trebuie să pierdeți memoria și aveți nevoie de mai multă memorie pentru a putea realoca această sarcină,
doar că veți folosi malloc.
Prin urmare, în această provocare veți scrie un program pentru a testa înțelegerea modului de alocare dinamică a memoriei.
Vreau să scrieți un program care permite unui utilizator să introducă un șir de text.
Deci, va trebui să utilizați Scan.
De asemenea, puteți utiliza serviciul get.
Nu am vorbit despre htan, ci să ne aducem sau să ne aducem pe fluxul de intrare standard, vă vom
permite să citiți un șir care conține spații.
Amintiți-vă Skanda dacă va citi doar șirul până la un spațiu dacă utilizați GET ASKED puteți citi
mai multe șiruri multiple separate prin spații.
În ambele cazuri, este bine ca scanarea să fie sau să o primim în orice fel veți avea ca utilizator să introducă un șir.
Programul va imprima textul introdus și ceea ce pare foarte ușor.
Dar diferența este că programul va utiliza alocarea dinamică a memoriei.
Puteți, de asemenea, ca utilizatorul să introducă limita șirului pe care îl introduce și apoi îl puteți
folosi pentru Mallick.
Deci știi cât de mulți octeți trebuie alocați.
Ar trebui să creați un pointer de caractere numai cu un pointer de caractere.
Nicio matrice de caractere.
Vreau ca Mallik să aloce memoria amintiți când creați matricea de caractere.
Memoria este deja alocată automat pentru dvs. pe baza dimensiunii pe care o introduceți în paranteze.
Și din nou, un mare dezavantaj este că acum se întâmplă dacă încercați să introduceți ceva mai mare decât ceea ce ați pus
în dimensiune.
Trebuie să o recompilați static, deoarece memoria devine alocată la timpul de compilare, când se execută programul, se
alocă o memorie dinamică.
Și astfel puteți determina cât de multă memorie doriți să alocați în funcție de ceea ce intră utilizatorul.
Deci, cereți din nou utilizatorului să introducă un număr pentru numărul de octeți pe care doriți să îl alocați pentru șir.
Apoi, cereți utilizatorului să introducă șirul și trebuie să alocați corect memoria și
apoi să treceți un pointer de caractere într-un scaner și să ne uitați și apoi să afișați doar textul introdus.
Și, în fine, nu uitați de funcția liberă importantă.
Întotdeauna vrei să-ți eliberezi memoria când termini să o folosești.
Dreapta.
Și doriți să vă asigurați că faceți acest lucru pentru ca alte programe să poată utiliza această memorie de memorie
este o resursă rară.
Bine, mai ales în cazul programelor încorporate în timp real.
Deci, nu scapi de memorie eliberați-o.
Mult noroc și voi oferi o soluție în următorul laxer.
Mulțumesc.