Solidity预留了3个32字节大小的槽位:
暂存空间(scratch space)
空闲内存指针(free memory pointer)
)暂存空间可在语句之间使用(如在内联编译时使用)
Solidity总是在空闲内存指针
所在位置创建一个新对象,且对应的内存永远不会被释放(也许未来会改变这种做法)。
有一些在Solidity中的操作需要超过64字节的临时空间,这样就会超过预留的暂存空间
。他们就将会分配到空闲内存指针
所在的地方,但由于他们自身的特点,生命周期相对较短,且指针本身不能更新,内存也许会,也许不会被清零(zerod out)
。因此,大家不应该认为空闲的内存一定已经是清零(zeroed out)
的。