顺序栈的清空操作只需要把s.top=s.base
那数据还存在吗?存在
关键在于,把top指针移到栈底的时候,这些数据已经没什么用了。
下次压栈的时候是从栈底开始存的,就像a=1,a=2,新的数据会把原来的数据盖掉。
而销毁顺序栈的时候,delete s.base是把从base开始指的一段连续空间都给释放了。
删除了指针指的内存,这个指针不再指向特定地址了,又回到了未初始化的状态。
为了防止读写到这个未初始化的指针(野指针),所以需要将它设置为NULL?🤔
(欢迎指正)
顺序栈的清空操作只需要把s.top=s.base
那数据还存在吗?存在
关键在于,把top指针移到栈底的时候,这些数据已经没什么用了。
下次压栈的时候是从栈底开始存的,就像a=1,a=2,新的数据会把原来的数据盖掉。
而销毁顺序栈的时候,delete s.base是把从base开始指的一段连续空间都给释放了。
删除了指针指的内存,这个指针不再指向特定地址了,又回到了未初始化的状态。
为了防止读写到这个未初始化的指针(野指针),所以需要将它设置为NULL?🤔
(欢迎指正)