```go
type Test struct {
Name [16]byte
}
```
读出16个字节后,假如是"hello", 那么后面势必跟着一堆 "\x00\x00..." 填充直到16长度。
问题是,后面的填充不一定是 "\x00\x00..",有可能是内存中一些未知表示,之前存过的值,如"hello\x003cade4e832627b4f6\x00\x00\x00\x00\..", 但"hello"之后必定有一个"\x00", 因为C语言中这个\0表示字符结束,后面的C语言不读了,认为结束了,所以C/C++读是没问题的,打印出来就是一个 "hello"
但用golang读出来就后面有一堆奇怪字符 ,比如 "hello 3cade4e832627b4f6 ",这种。
这个要怎么处理? 找到第一个"\x00" 切掉后面?
有没有更好的方法?
```go
go和c交互用到cgo
不知道C.GoString()能不能帮到你
就是将c字符串转换为go字符串,自动识别c中'\0'作为结束
```
#4
更多评论