c语言运行时显示内存不足,请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码...

请问: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]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值