Comment convertir un tableau d'octets terminé par zéro (chaîne C) en chaîne Go ?
Bonjour à tous ! Je suis débutant en Go et j'écris un programme qui interagit avec du code C via cgo. Dans la partie C, je reçois une chaîne terminée par un octet nul (`\0`) sous la forme `*C.char`. J'essaie de la convertir en une chaîne Go normale, mais je rencontre des problèmes.
Par exemple, j'ai une fonction qui retourne `*C.char` :
```go
// char* get_name(void);
import "C"
func getName() string {
name := C.get_name()
// Comment convertir correctement name en chaîne Go ?
}
```
J'ai essayé d'utiliser `C.GoString(name)`, mais je ne suis pas sûr que ce soit correct dans tous les cas. Que faire si le tableau d'octets contient des octets nuls à l'intérieur ? Ou si la chaîne est très longue ? Comment éviter les fuites de mémoire et les paniques ?
Veuillez m'indiquer la méthode correcte pour convertir un tableau d'octets terminé par zéro en chaîne Go, surtout lors du travail avec cgo. J'ai besoin d'une méthode fiable et sécurisée.
<<>>
Conversion sécurisée d'une chaîne C en chaîne Go
En Go, pour travailler avec des chaînes terminées par zéro,