首页
社区
课程
招聘
[求助]我发现一个情况,这是怎么回事?
发表于: 2013-9-25 11:06 3832

[求助]我发现一个情况,这是怎么回事?

2013-9-25 11:06
3832
编程环境:win7 32位,VC6

发现在编写线程时,线程里的动态数组变量共用同一块内存,地址相连,虽然每个变量的起始地址不同,但整块地址完全相连。(这不算什么奇怪事,但接下来的就匪夷所思)

调试时发现使用GetDLGItem给其中一个数组变量赋值,能够一次性修改整块地址的内容。(我在这块地址空间,有三个数组变量线性毗邻分布。)

我虽然没有显示操作另两个数组,但一并被修改内容。我发现后,只好在线程函数里将这三个数组定义成static 变量。这才止住这种情况。

这是怎么回事?有人有相同经历吗???

//因为我平时以J2EE为工作营生,整天做的是架构设计,对系统编程纯属个人爱好和私下的追求。所以很多时候在系统编程领域理论多于实践。望理解,不要喷我。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你是怎么申请内存的呢?
2013-9-25 12:24
0
雪    币: 9717
活跃值: (2526)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我昨天也遇到个类似问题,是一个EnumPrinters,调试发现每次执行到这以后,局部变量全变乱了,后来换个GetDefaultPrinter好了。
2013-9-25 12:56
0
雪    币: 213
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我直接在线程函数里定义的数组变量。
2013-9-25 13:30
0
游客
登录 | 注册 方可回帖
返回
//