Ciao Bentornato. Questo sarà il nostro ultimo incarico, la nostra ultima
sfida per la nostra sezione puntatori.
In questa sfida, voglio che tu capisca come
funziona l'allocazione dinamica della memoria. Quindi avrai bisogno di malloccare una stringa.
Sarà piuttosto semplice.
Ma ti farà capire l'intero
concetto di allocazione dinamica della memoria.
Quali sono i vantaggi dell'allocazione dinamica della memoria?
Bene, significa che puoi allocare abbastanza memoria quando ne hai bisogno.
Non devi sprecare memoria. E se hai bisogno di più memoria puoi riallocare.
Questo incarico ti farà solo usare malloc.
Quindi, in questa sfida, scriverai un programma che verifica la tua comprensione dell'allocazione dinamica della memoria.
Voglio che tu scriva un programma che consenta all'utente di inserire una stringa di testo.
Quindi dovrai usare scanf. Puoi anche usare git s, non ne
abbiamo parlato molto, ma git s o f git s sul flusso
di input standard ti permetteranno di leggere una
stringa che contiene spazi. Ricorda, scanf leggerà
solo la stringa fino a uno spazio.
Se usi git s, puoi leggere più stringhe separate da spazi, in entrambi i casi
va bene, scanf o git s in entrambi i casi.
Farai inserire una stringa all'utente. Il programma stamperà il
testo immesso.
Può sembrare molto facile, ma la differenza qui è che il programma utilizzerà
l'allocazione dinamica della memoria.
Puoi anche fare in modo che l'utente inserisca il limite della
stringa che sta inserendo, quindi puoi usarlo per malloc, in modo da sapere quanti byte allocare.
Dovresti creare un puntatore a caratteri, solo un puntatore a caratteri, nessun array di caratteri.
Voglio che tu allochi la memoria. Ricorda, quando crei l'array di caratteri,
la memoria viene automaticamente già allocata per te in base
alla dimensione che
hai inserito tra parentesi. E ancora, un grande svantaggio di questo è
che se provi a inserire qualcosa di più grande di quello che hai inserito nella dimensione, devi ricompilare.
È statico. Quella memoria viene allocata in fase di compilazione.
La memoria dinamica viene allocata durante l'esecuzione del programma.
E così puoi determinare la quantità di memoria che vuoi allocare in base a ciò che l'utente inserisce.
Quindi, di nuovo, chiedi all'utente di inserire un numero per il numero
di byte che desideri allocare per la stringa.
Quindi chiedi all'utente di inserire la stringa in.
E devi allocare correttamente la memoria e quindi passare quel puntatore a carattere in scanf o
git s e
quindi fondamentalmente visualizzare solo il testo che è stato inserito.
E poi, infine, non dimenticare l'importantissima funzione gratuita.
Vuoi sempre liberare la tua memoria quando hai finito
di usarla e vuoi assicurarti di farlo in modo che altri programmi
possano utilizzare quella memoria. La memoria è una
risorsa scarsa, specialmente sui programmi in tempo reale dei sistemi
embedded, quindi non inghiottire la memoria, rilasciala.
Buona fortuna e fornirò una soluzione nella prossima lezione. Grazie.