[C++]线程内部指针问题

[复制链接]
查看11 | 回复3 | 2012-8-27 07:39:53 | 显示全部楼层 |阅读模式
按照你描述的逻辑顺序,你方法结束时, 局部变量已经不存在了. 但是因为线程中保存的是指针地址,所以值一定能取到,但不对,因为指针已经是野指针了...除非,你申请局部变量时,用的方法是 new或malloc的堆分配方式,这种方式当变量没有执行析构时(delete free) , 变量总是有效的....
回复

使用道具 举报

千问 | 2012-8-27 07:39:53 | 显示全部楼层
指针指向的值永远能取到,但是当你取的时候,这个内存已经被别的变量或者代码使用了,所以你取到的不是你想要的,而且,如果你试图写,你还会破坏其他重要的东西。所以作为一个规则:永远不要把一个变量的指针给超出这个变量作用域的任何代码使用...
回复

使用道具 举报

千问 | 2012-8-27 07:39:53 | 显示全部楼层
在方法退出前,线程可以取到,因为局部变量的堆栈在函数退出时销毁。但这样容易出问题,为啥不传值而要传指针呢。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行