Ich habe meinen dynamisch allokierten Speicher eben „granuliert“, d.h. jeder Speicherblock liegt nicht nur an einer an 16 Bytes ausgerichteten Adresse, sondern ist in der Größe auch ein glattes Vielfaches von 16 Bytes. Das macht ein paar Optimierungen bedeutend einfacher.
Was ich jetzt schon angepeilt habe ist:
- memcpy() rausschmeißen – alle Kopien von Speicher zu Speicher werden in 16-Byte-Schritten vollzogen
- vor Reallokationen prüfen, ob überhaupt eine 16-Byte-Grenze überschritten wurde, und in falls nicht, auch nichts reallokieren
- strcpy() rausschmeißen – alle Strings werden in 16-Byte- statt in 1-Byte-Schritten vollzogen
- strlen() rausschmeißen – wird ebenfalls in 16-Byte-Schritten vollzogen
Gruß, Ky