Ai
1 Star 0 Fork 0

秋来冬风/gtl

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
memory.go 1.06 KB
一键复制 编辑 原始数据 按行查看 历史
秋来冬风 提交于 2023-01-02 12:14 +08:00 . 秋来冬风:gofmt
package cextend
/*
#cgo CFLAGS: -g -O3 -march=corei7
#include "cextend.h"
*/
import "C"
import (
"runtime/cgo"
"unsafe"
)
// C语言<stdlib.h>中提供的realloc函数的go语言API
func Realloc(ptr unsafe.Pointer, size uint) (nptr unsafe.Pointer) {
nptr = C.realloc(ptr, C.size_t(size))
return
}
// C语言<stdlib.h>中提供的malloc函数的go语言API
func Malloc(size uint) (ptr unsafe.Pointer) {
ptr = C.malloc(C.size_t(size))
return
}
// C语言<stdlib.h>中提供的calloc函数的go语言API
func Calloc(nitems uint, size uint) (ptr unsafe.Pointer) {
ptr = C.calloc(C.size_t(nitems), C.size_t(size))
return
}
// C语言<stdlib.h>中提供的free函数的go语言API
func Free(ptr unsafe.Pointer) {
C.free(ptr)
return
}
// C语言<string.h>中提供的memcpy函数的go语言API
func Memcpy(dest, src unsafe.Pointer, n uint) {
gcdest := cgo.NewHandle(dest)
cdest := gcdest.Value().(unsafe.Pointer)
gcsrc := cgo.NewHandle(src)
csrc := gcsrc.Value().(unsafe.Pointer)
defer gcdest.Delete()
defer gcsrc.Delete()
C.memcpy(cdest, csrc, C.size_t(n))
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/qiulaidongfeng/gtl.git
git@gitee.com:qiulaidongfeng/gtl.git
qiulaidongfeng
gtl
gtl
044be384fdfd

搜索帮助