ホームページ >バックエンド開発 >Golang >CGO を使用して Go 文字列を C char ポインターにコピーするにはどうすればよいですか?

CGO を使用して Go 文字列を C char ポインターにコピーするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-04 12:26:071076ブラウズ

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

Go 文字列を CGO の C char ポインターにコピーする

Go では、CGO パッケージにより Go と C コード間の通信が容易になります。一般的なシナリオの 1 つは、Go 文字列を C char ポインターにコピーすることです。

これを実現するには、C.CString 関数を使用する必要があります。この関数は、C 文字列にメモリを割り当て、それへのポインタを返します。構文は次のとおりです。

cstr = C.CString(str)

ここで、str は Go 文字列、cstr は C char ポインタです。

ただし、C.CString によって割り当てられるメモリは次のとおりである必要があることに注意してください。手動で解放されます。これを行うには、次のコマンドを使用できます:

C.free(unsafe.Pointer(cstr))

ここで、cstr は、以前に作成した C char ポインタです。

以上がCGO を使用して Go 文字列を C char ポインターにコピーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。