Sto convertendo un progetto da C a misto C / C ++. Sta andando piuttosto bene, e le nuove funzionalità stanno davvero alleggerendo il lavoro.
La piattaforma è un ARM SAM4, il compilatore è arm-none-eabi-g ++. Questa non è un'apparecchiatura di sicurezza, ma potrebbe essere lasciata in funzione per mesi e non dovrebbe riavviarsi sporadicamente.
Il progetto C originale è riuscito a risolvere abbastanza facilmente problemi senza una sola chiamata malloc
, allocando staticamente tutti i dati necessari. Ad esempio, gli array con dimensioni sconosciute sono allocati alla dimensione massima prevista.
Ora sto prendendo in considerazione che posso farcela usando new
. Ad esempio, tutti i contenitori STL conservano il loro contenuto nell'heap. L'aggiunta di un nuovo elemento a vector
può causare la de-allocazione di un'intera regione dell'heap e l'allocazione di un altro.
Ci saranno problemi di frammentazione?
Related: