Avatar ·

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,