【Go】结构体的内存布局
测试环境:go1.25.3 windows/amd64 1. 结构体布局 Go 语言中,结构体和它所包含的数据在内存中是以连续块的形式存在的,即使结构体中嵌套有其他的结构体。 2. 示例 2.1. 结构体 定义的结构体如下: 1 2 3 4 5 6 type studentInfo struct { id int // 学号 name string // 姓名 sorce float32 // 总分 rank int // 年纪排名 } 2.2. 示意图 1 2 3 4 5 6 7 8 9 10 Bytes 8 16 4 4 8 +----+------+--------+---------+------+ | id | name | source | padding | rank | +----+------+--------+---------+------+ / \ / \ +-----+--------+ | ptr | length | +-----+--------+ 8 8 由于结构体是 8 字节对齐,所以 source 有 4 字节填充,那么总共是 40 字节。 ...