Heim >Backend-Entwicklung >Golang >Wie kopiere ich mit CGO einen Go-String in einen C-Char-Zeiger?

Wie kopiere ich mit CGO einen Go-String in einen C-Char-Zeiger?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-04 12:26:07986Durchsuche

How Do I Copy a Go String to a C char Pointer Using CGO?

Kopieren eines Go-Strings in einen C-Zeichenzeiger in CGO

In Go erleichtert das CGO-Paket die Kommunikation zwischen Go und C-Code. Ein häufiges Szenario ist das Kopieren eines Go-Strings in einen C-Zeichenzeiger.

Um dies zu erreichen, muss die Funktion C.CString verwendet werden. Diese Funktion reserviert Speicher für den C-String und gibt einen Zeiger darauf zurück. Die Syntax lautet wie folgt:

cstr = C.CString(str)

wobei str der Go-String und cstr der C-Zeichenzeiger ist.

Es ist jedoch wichtig zu beachten, dass der von C.CString zugewiesene Speicher muss manuell freigegeben werden. Dazu können Sie den folgenden Befehl verwenden:

C.free(unsafe.Pointer(cstr))

wobei cstr der zuvor erstellte C-Char-Zeiger ist.

Das obige ist der detaillierte Inhalt vonWie kopiere ich mit CGO einen Go-String in einen C-Char-Zeiger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn