>백엔드 개발 >Golang >CGO를 사용하여 Go 문자열을 C char 포인터에 어떻게 복사합니까?

CGO를 사용하여 Go 문자열을 C char 포인터에 어떻게 복사합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-04 12:26:07986검색

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

Go 문자열을 CGO의 C 문자 포인터에 복사

Go에서 CGO 패키지는 Go와 C 코드 간의 통신을 용이하게 합니다. 일반적인 시나리오 중 하나는 Go 문자열을 C 문자 포인터로 복사하는 것입니다.

이를 달성하려면 C.CString 함수를 활용해야 합니다. 이 함수는 C 문자열에 대한 메모리를 할당하고 이에 대한 포인터를 반환합니다. 구문은 다음과 같습니다.

cstr = C.CString(str)

여기서 str은 Go 문자열이고 cstr은 C 문자 포인터입니다.

그러나 C.CString이 할당하는 메모리는 다음과 같아야 한다는 점에 유의하는 것이 중요합니다. 수동으로 해제됩니다. 이렇게 하려면 다음 명령을 사용할 수 있습니다.

C.free(unsafe.Pointer(cstr))

여기서 cstr은 이전에 생성된 C 문자 포인터입니다.

위 내용은 CGO를 사용하여 Go 문자열을 C char 포인터에 어떻게 복사합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.