Ich bin mit ::operator new(sizeof(T) * count)
Platz zuweisen.Ich erhalte sehr unterschiedliche Adressen bei der Zuweisung von Speicherplatz
Der erste Anruf gibt eine Adresse 0x742f30
zurück und der zweite gibt 0x7f2ef0000d60
zurück. Ich bin jetzt verwirrt über den großen Unterschied.
Meine Frage: Ist das normal, dass die zurückgegebenen Adressen so unterschiedlich sein können?
Update:
SLES 11 SP3 VM on XenServer
gcc 4.9.3
10 GB RAM
Update:
Weil manche Leute ein falsches Ausgabeformat vermutet. Ich zeige die zurückgegebene Adresse durch den new
Befehl mit demselben printf
Format an. Ich kopiere die Zeigerwerte auf diese Frage durch Kopieren und Einfügen und überprüfe sie zweimal. Sie stimmen mit der Ausgabe meines Memory Allocators überein.
Ja, da der Speicher tatsächlich Standorte als nicht zugewiesen markiert, und es kann kleine Block verstreut über den gesamten Speicher nicht ansteckend sein. – MoustafaS
Können Sie etwas Code posten? Idealerweise etwas, das wir zusammenstellen und mit uns selbst spielen können. –
Das ist ** sehr seltsam ** ... Der Unterschied ist ca.: ** ~ 140TB ** - Sind Sie sicher, dass Sie die Nummern richtig gebucht haben? – WhiZTiM