首页
社区
课程
招聘
[求助]CString 数组有没有特别要注意的?
发表于: 2009-3-8 07:49 6615

[求助]CString 数组有没有特别要注意的?

2009-3-8 07:49
6615
比如,我定义 CString str[100];
那么在内存中其实是分配了 100 个 指针,指向这100地址,

然后,对str 进行初化化,填入字符, (小于0x40),发现CString 给他都发配了 0x40 大小,因为str[0] str[1] 是相差0x40的
然后.我 一直

for (int i=0;i<10;i++)
        {
                  str[i]+="dddddddddddddddddddddddddddd";
        }
       
这样,很快,str[0].就超过了0x40,如果这时候指针还指向原来的地址,

此时,肯定会湮没掉str[1], 不过CString 自己会操作这些,将指针指到另一个地址,(应该是新申请了空间)

//第一次分配.这是前 8 个
0040311C  68 40 03 00 B8 40 03 00 08 41 03 00 58 41 03 00  h@.窣.A.XA.
0040312C  A8 41 03 00 F8 41 03 00 48 42 03 00 98 42 03 00  ˋ.鳤.HB.楤.

//数据超过0x40后,分配了新地址
0040311C      BC B3 03 00 BC B6 03 00 BC B9 03 00 BC BC 03 00  汲.级.脊.技.
0040312C      E4 C8 C2 00 64 9F 03 00 64 A2 03 00 64 A5 03 00  淙?d?.d?.d?.

  在这样看着,这个CString 是很安全的,

不知道CString 作数组时,有没有特别的要注意安全的?因为最近我写的个程序,经验内存出错,

我觉得可能是与 这个有关,比如: 在线程中,的 CString 数组之类的

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
先申请内存,用完就释放!
2009-3-8 13:49
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
CString 自己就会帮你申请内存啊
2009-3-8 18:07
0
雪    币: 213
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你不是碰上了问题吗?那就去试试啊
2009-3-9 02:14
0
游客
登录 | 注册 方可回帖
返回
//