gpt4 book ai didi

pointers - 在 Golang 中将类型 uintptr 分配给 uint64

转载 作者:IT老高 更新时间:2023-10-28 13:08:52 31 4
gpt4 key购买 nike

我正在尝试将在 uintptr 类型的变量中找到的值分配给 Go 中的 uint64 变量。使用

myVar = valFromSystem

给我

cannot use valFromSystem (type uintptr) as type uint64 in assignment

正在尝试

myVar = *valFromSystem

给我

invalid indirect of valFromSystem (type uintptr)

有没有办法将 valFromSystem 指向的值拉出来分配给 myVar

最佳答案

首先,将 valFromSystem 转换为 unsafe.Pointerunsafe.Pointer 可以转换为任何指针类型。接下来,将 unsafe.Pointer 转换为指向 valFromSystem 指向的任何数据类型的指针,例如uint64.

ptrFromSystem = (*uint64)(unsafe.Pointer(valFromSystem))

如果你只想获取指针的值(不取消引用),你可以使用直接转换:

uint64FromSystem = uint64(valFromSystem)

但请记住,当使用指针作为整数时,您应该使用类型 uintptr

关于pointers - 在 Golang 中将类型 uintptr 分配给 uint64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23202864/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com