![]() |
1
5
因为
您很可能希望写入分配的字节的内存空间,因此,不要使用切片描述符的地址,而是使用分配的字节地址,可以通过获取第一个元素的地址(切片描述 相接的 基础阵列的部分):
输出(在 Go Playground ):
如您所见,您设置的数据显示在第二个输出中(
如果使用切片描述符的地址,您会看到恐慌,因为描述符包含第一个元素的地址、元素计数和容量等内容。因此,通过使用描述符的地址,您将修改这些属性,并且当尝试将其再次打印为切片时,写入的数据很可能位于无效指针中。这通过您写入值来确认
另一种选择是使用“真实”数组而不是切片,因为数组不是描述符:
随着这一变化,输出将保持不变。 |
![]() |
Community wiki · safe_ptr实现 1 年前 |
![]() |
lplplplp · 为什么不能访问函数外的结构指针 2 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 2 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |