猿问

Go在C++中是否提供类似memmove的功能

网上查了下,发现runtime包有这个功能,但是没有导出。

Golang 在 C++ 中有类似 memmove 的东西吗?

void * memmove ( void * destination, const void * source, size_t num );


温温酱
浏览 137回答 3
3回答

梵蒂冈之花

我相信复制是你正在寻找的。src := []byte("some data")dst := make([]byte, len(src))copy(dst, src)println(string(dst)) // prints 'some data'

HUX布斯

您可以使用go:linkname编译指令://go:noescape//go:linkname memmove runtime.memmovefunc memmove(to, from unsafe.Pointer, n uintptr)

Cats萌萌

最后,我决定使用Cgo。它可能会通过调用 C 失去类型安全的好处。但我找不到任何原生的 go 代码解决方案。//#include <string.h>import "C"import "unsafe"func Memmove(src, dest unsafe.Pointer, length int) {&nbsp; &nbsp; C.memmove(dest, src, C.size_t(length))}
随时随地看视频慕课网APP

相关分类

Go
我要回答