wchar_t-Array mit ZeroMemory



  • Hallo,

    ich stehe gerade irgendwie auf dem Schlauch. Ich möchte gerne ein ARRAY oder besser gesagt einen Zeiger auf wchar_t, der mit einer bestimmten Anzahl an Speicher (Verwendung von new) reserviert wird 'leeren' mit ZeroMemory. Dabei ist das Problem, dass ich diesen Zeiger an einer Funktion übergebe und diese Funktion soll das machen, aber diese Funktion muss erstmal herausfinden, wieviel Speicher reserviert wurde. Wie geht das?

    ARRAYSIZE und size_of funktionieren dabei nicht.

    //-----Initialisierung des Zeigers
    
    int sizevalue=Edit1->Text.Length()+1;
    wchar_t *wcValue = new wchar_t[sizevalue+1];
    
    //---Verwendung des Zeigers in der Funktion
    
    CopyTextToWChar(wcValue);
    
    //-------Funktion, die etwas mit dem String macht
    void CopyTextToWChar(wchar_t *Value)
    {
      // der verwendete Speicher für Value ist unbekannt, wie bekomme ich ihn?
      ZeroMemory(Value,/* ich brauche diesen Wert! */);
      wcscpy(Value,Edit1->Text.w_str());
    }
    

    Ich weiss, das Beispiel ergibt keinen richtigen Sinn, aber wie ermittle ich den verwendeten Speicher von Value??

    Gruß
    Hawk



  • Hallo,

    gar nicht. Zeiger bieten Dir nicht diese Information.

    mfg Martin



  • Nimm einen std::vector<wchar_t> . Der füllt seinen Inhalt nicht nur automatisch mit 0, sondern hat auch noch viele andere Vorteile.



  • Danke,

    werde das mal ausprobieren oder mir einen anderen Weg einfallen lassen...



  • brauchst du auch an der Stelle nicht, weil der String automatisch 0 terminiert wird, du brauchst also nicht händisch hinten noch 0en erzeugen.

    greetz KN4CK3R


Anmelden zum Antworten