Como converter um array de bytes terminado em nulo (string C) para uma string em Go?
Olá a todos! Sou novo em Go e estou escrevendo um programa que interage com código C através de cgo. Na parte C, recebo uma string terminada em byte nulo (`\0`) como `*C.char`. Estou tentando convertê-la para uma string Go comum, mas estou encontrando problemas.\n\nPor exemplo, tenho uma função que retorna `*C.char`:\n\n```go\n// char* get_name(void);\nimport "C"\n\nfunc getName() string {\n name := C.get_name()\n // Como converter corretamente name para uma string Go?\n}\n```\n\nTentei usar `C.GoString(name)`, mas não tenho certeza se isso é correto para todos os casos. E se o array de bytes tiver bytes nulos internos? Ou se a string for muito longa? Como evitar vazamento de memória e pânico?\n\nPor favor, me indiquem a maneira correta de converter um array de bytes terminado em nulo para