| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1036 人关注过本帖
标题:请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码
取消只看楼主 加入收藏
aaabccc
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-11-6
收藏
 问题点数:0 回复次数:1 
请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码
[size=4][size=5]我编的一个高精度解hilbert方程组的程序段,用的是GS跌代,但运行时出现“虚拟内存不足”的问题,我想是没有及时释放没用的空间,那位高手可以帮我优化一下,谢谢!
#define Max 99
#define Dimension 20
typedef struct node
{
    bool sign; //正负
    int index; //指数
    int data[Max]; //数字
}str;  
     void precision(str *); //初始化
bool compare(str *,str *);//比较两数大小
str *add(str *,str *); //加
str *sub(str *,str *); //减
str *mul(str *,str *); //乘
str *div(str *,str *); //除
str *conversion(int); //把整数变为str型数据


str *b[Dimension+1], *x[Dimension+1], *k, *t;
k=new str;t=new str;
precision(k);k->data[0]=1;k->index=0;
for(i=0;i<=Dimension;i++){
  b[i]=new str;x[i]=new str;
  precision(b[i]);precision(x[i]);
}
while(compare(k,div(conversion(1),conversion(10)))){  
  for(i=1;i<=Dimension;i++){
   precision(x[i]);
   for(j=1;j<=Dimension;j++){
    if(j==i) continue;   
    x[i]=add(div(x[j],conversion(i+j-1)),x[i]);     
   }   
   x[i]=mul(sub(b[i],x[i]),conversion(i+i-1));     
  }
  precision(k);
  for(j=1;j<=Dimension;j++){
   t=sub(x[j],conversion(1));
   k=add(mul(t,t),k);
}  
}
[size=4]
[/size][/size][/size]

[[italic] 本帖最后由 aaabccc 于 2007-12-7 09:51 编辑 [/italic]]
搜索更多相关主题的帖子: 内存 代码 虚拟 运行 
2007-12-06 17:29
aaabccc
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-11-6
收藏
得分:0 
大家帮帮忙啊,谢谢了

2007-12-07 09:52
快速回复:请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030744 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved