问纯C转C++中内存分配的问题
有一套纯C的算法,要应用到symbian(手机7610)中,内存分配提供的两种方法.
1;第一个是我们自己写的,在非智能手机上运行良好.移植到symbian后,在模拟器上运行良好,但down到后机上运行算法
程序会关闭,基本断定是不支持全局变量引起的.
请问有没有什么办法可解决?
2;用内存分配函数,定义宏如下:
#define MALLOC(X,type,size) X=(type*)malloc((size)*sizeof(type)); if(X==NULL) { ret=OUT_OF_MEMORY; goto ERROR_EXIT; } else gmstring_memset((void *)X,0,sizeof(type)* (size));
#define FREE(X) if (X!=NULL) { free((void *)X); X=NULL; }
所以我想用new 来替换malloc,如下:
#define MALLOC(X,type,size) X= new (ELeave) type[(size)*sizeof(type)]; if(X==NULL)
{ret=OUT_OF_MEMORY; goto ERROR_EXIT; } else gmstring_memset((void *)X,0,sizeof(type)*(size));
#define FREE(X) if (X!=NULL) { delete X; X=NULL; }
但分配一两次就不能再分配成功,分配的空间也就几十K.
请问有没有办法解决?或有什么其它好的办法指点一下.
哪位帮忙解决一下,谢谢各位.