最近在纠结一个问题,把局部变量加入到一个全局的链表里面去,在其他的地方获取到这个变量值是否存在?局部变量不是应该释放了吗?我个人有如下理解
其实不然,加入到链表的时候其实是把变量的值复制一份加到链表里面去的,局部变量所申请的地址是释放,如果变量是一个类对象就会把这个类对象的值赋值到链表里面新建的一个类对象,如果是一个指针就会把这个指针地址赋值到链表新建的一个指针,所以在其他地方获取这个链表里面的数据是存在的。
比如一个返回局部变量值的函数,局部变量的内存空间已经释放,函数返回的是这个变量的值,如果这个函数返回的是在栈上申请的内存地址,那么就会是野指针操作。