Cómo convertir un arreglo de bytes terminado en nulo (C-string) a un string en Go
¡Hola a todos! Soy nuevo en Go y estoy escribiendo un programa que interactúa con código C a través de cgo. En la parte C, recibo un string terminado en byte nulo (`\0`) como `*C.char`. Estoy tratando de convertirlo a un string normal de Go, pero me encuentro con problemas.
Por ejemplo, tengo una función que devuelve `*C.char`:
```go
// char* get_name(void);
import "C"
func getName() string {
name := C.get_name()
// ¿Cómo convertir correctamente name a un string de Go?
}
```
He probado usar `C.GoString(name)`, pero no estoy seguro de que sea correcto para todos los casos. ¿Qué pasa si el arreglo de bytes tiene bytes nulos en su interior? ¿O si el string es muy largo? ¿Cómo evitar fugas de memoria y panics?
Por favor, indíquenme la forma correcta de convertir un arreglo de bytes terminado en nulo a un string de Go, especialmente al trabajar con cgo. Necesito un método confiable y seguro.
<<>>
Conversión segura de C-string a string de Go
En Go, para trabajar con strings terminados en nulo