公司的一个产品中有一个ole容器,可以插入自己开发或是第三方的ocx控件,并且用一个属性页来显示控件属性和方法,属性和方法各为一页,现在发现有一个第三方控件,在多次切换属性和方法属性页时,会使主程序crash,察看dr watson的log发现是内存分配问题,后来发现错误之处在这样一个语句a = new b,这行语句是在循环enumerate控件属性中,主要是先new出一个a对象,取出一个属性把属性名称和值之类的相关元素放到a中,然后把a加到指针数组中,出问题的情况下是新new出来的指针居然跟前面new出来某个指针是一个地址,这显然是不可能的事情,循环还没有完成,也没有释放之前那个指针的内存,出现相同指针之后下次再new就是主程序crash。这段去方法和属性的code肯定没有问题,至今为止也只发现这一个控件有这个问题,而且在debug版本的主程序中会出现'Out of memory'问题。请问一下什么情况下会出现这种内存问题,我的机器内存是1G的,磁盘空间也还有几个G没有用?先谢了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货