РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1582 of 1593 menu

Функция C.GoString

Функция C.GoString преобразует C-строку (указатель на char) в строку Go. Она принимает один параметр - указатель на первый символ C-строки, завершающейся нулевым байтом, и возвращает строку Go.

Синтаксис

C.GoString(cstr)

Пример

Давайте создадим C-строку и преобразуем ее в строку Go:

package main /* #include <stdlib.h> */ import "C" import "fmt" func main() { cstr := C.CString("Hello from C") defer C.free(unsafe.Pointer(cstr)) res := C.GoString(cstr) fmt.Println(res) }

Результат выполнения кода:

"Hello from C"

Пример

Давайте получим C-строку из C-функции и преобразуем ее в строку Go:

package main /* #include <string.h> #include <stdlib.h> char* get_message() { char* msg = malloc(12); strcpy(msg, "GoLang"); return msg; } */ import "C" import "fmt" import "unsafe" func main() { cstr := C.get_message() defer C.free(unsafe.Pointer(cstr)) res := C.GoString(cstr) fmt.Println(res) }

Результат выполнения кода:

"GoLang"

Смотрите также

  • функцию C.CString,
    которая выполняет обратное преобразование - из строки Go в C-строку
  • функцию C.GoStringN,
    которая преобразует C-строку в строку Go с указанием длины
  • функцию C.free,
    которая освобождает память, выделенную под C-строку
  • функцию C.GoBytes,
    которая преобразует C-массив байт в срез байт Go
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить