[Ich bin neu in D (schreibe gerade mein erstes nützliches Programm) und ich habe nicht viel C-Hintergrund - nur ein paar C # und andere meist zeigerlose Sprachen.]
Muss ich vor dem Casting immer '\ 0' an den wstring anhängen? Ist das der einzige Weg um sicherzustellen, dass mein wchar * null-terminiert wird? Ist es eine neue Kopie des wstring, oder wird nur ein Zeiger auf dasselbe wstring geworfen, das du trägst?
Die Funktionen toStringz
konvertieren D-Strings in C-style-Strings mit Null-Ende.
z.B.
%Vor% toStringz
weist dem Heap nur dann eine neue Zeichenfolge zu, wenn die Zeichenfolge nicht bereits null ist, andernfalls wird nur s.ptr
zurückgegeben.
Wenn Sie nur einen Zeiger wünschen, verwenden Sie die Eigenschaft 'ptr' (verfügbar für alle dynamischen Arrays, nicht nur für Strings)
%Vor% Wenn Sie jedoch etwas mit C verwenden möchten, um sicherzustellen, dass es nicht terminiert ist, verwenden Sie toStringz
toStringz
führt keine Kopie durch, wenn die Zeichenfolge bereits null ist.
Tags und Links d