问纯C转C++中内存分配的问题

liqian99 2007-09-19 07:42:04
有一套纯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.

   请问有没有办法解决?或有什么其它好的办法指点一下.

         哪位帮忙解决一下,谢谢各位.



...全文
61 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liqian99 2007-09-20
  • 打赏
  • 举报
回复
我那样没错,是一个静态常量引起的,不过还是谢谢你.结贴了
anel 2007-09-20
  • 打赏
  • 举报
回复
这样看看
X=new type[size];

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧