Misure precauzionali.
La stringa è essenzialmente un array dinamico, la sua dimensione può cambiare nel corso del programma. Questo è molto comodo, ma anche molto pericoloso, perché la memoria può frammentarsi, esaurirsi, ecc. Diamo un'occhiata ad alcuni principi di base per la manipolazione sicura delle stringhe:
- Se devi passare una stringa a una funzione, fallo per riferimento. Ciò salverà il programma dalla duplicazione di un dato, perché a causa di una stringa sufficientemente grande, la RAM potrebbe esaurirsi e il programma si bloccherà. Esempio: void someFunc(String &str); - la funzione accetta un riferimento a una stringa. Ciò non influirà in alcun modo sull'utilizzo della funzione, ma quando viene chiamata non verrà creata una copia della stringa.
- Non chiamare di nuovo la conversione in String, la libreria lo farà per te! Ad esempio, non è necessario scrivere myString += String(value); solo myString += value; è abbastanza. Quando crei una lunga stringa aggiungendo nuovi dati "pezzo per pezzo", questo ti salverà dalla frammentazione della memoria.
- Avvolgi blocchi di codice con manipolazioni di stringhe di grandi dimensioni tra {parentesi graffe}: le stringhe String create localmente verranno rimosse dalla memoria immediatamente dopo la chiusura }, il che può prevenire la frammentazione e l'overflow della memoria.
