wie erzeugt man ein handle



  • Das hat implizit nichts mit dem Konzept "Handle" zu tun. Das gehört eher in den Bereich "Memory allocation/management". Da könntest du Speicherfragmentierung z.B. umgehend indem du Memorypools verwendest, oder Ähnliches...

    wie kann man eine Application in einem bestimmten memory block laufen lassen?
    z.B.

    int* m = new int [10];
    

    dann die &m ist vom platform memory managerment abhängig, man kann es nicht kontrollieren.

    Nehmen wir an, ich will alle Allokationen die Adressen zwischen 0x1000 ~ 0xf000 haben, alleine mit "new" od "alloc" kann man es nicht schaffen.

    Wie macht man es?



  • placement new?



  • placement new?

    aber was sollte man dann schreiben?



  • Die Frage ist schon Käse, weil du unter Windows keinen physikalischen Speicher bekommst, sondern virtuellen. Von daher macht es keinen Sinn, Speicher an festen Adressen allozieren zu wollen, um Speicherfragmentierung zu vermeiden. Du könntest einen eigenen Memory Manager programmieren, der einen festen Speicherblock bekommt und in diesem Block Objekte erzeugt.
    Was genau hast du denn vor?


  • Mod

    netrobot schrieb:

    placement new?

    aber was sollte man dann schreiben?

    Dann machst du new (/*Adresse zwischen 0x1000 und 0xf000*/) Typname . Und dann fliegt dir das zu 99.9999% um die Ohren, weil diese Adressen entweder nicht gemapt sind ( ➡ Segmentation fault) oder an dieser Stelle schon wer weiß was steht ( ➡ irgendein lustiger Absturz). Wenn du mit festen Adressen hantieren willst, musst du schon ganz genau wissen, was du da tust und musst auch einen sehr guten Grund dafür haben.



  • Du könntest einen eigenen Memory Manager programmieren, der einen festen Speicherblock bekommt und in diesem Block Objekte erzeugt.
    Was genau hast du denn vor?

    das ist genau was ich vorhabe.

    der einen festen Speicherblock bekommt

    schreibt man einfach

    int* i = 0xffff000; ?
    


  • Wenn du mit festen Adressen hantieren willst, musst du schon ganz genau wissen, was du da tust und musst auch einen sehr guten Grund dafür haben.

    memory fragment ist z.b. ein grund


  • Mod

    netrobot schrieb:

    schreibt man einfach

    int* i = 0xffff000; ?
    

    netrobot schrieb:

    memory fragment ist z.b. ein grund

    Ich glaube du solltest lieber keinen Speichermanager schreiben.



  • Ein oder mehrere Elemente zu repräsentieren den Zustand eines Objekts Grafiken dar. Sie kennen die ganze Oberfläche des Objekts. Wenn der Status des Elements, die Zahlen. Auf der anderen Seite, muss das Objekt aus den Daten bleiben unabhängig - nicht wissen, das Interface sehr viel.

    Zum Beispiel werden die Ergebnisse der Messungen gleichzeitig in einem Diagramm, Balkendiagramm und Tabelle angezeigt. Preise ändern sich ständig. Informationen über Diagramme stellen diese Änderungen dauerhaft das Messobjekt, haben aber keine Kenntnisse über die Struktur der Daten.



  • Um das Zwischengesicht zu aktivieren drücken sie die Taste Macht.


Anmelden zum Antworten