动态数组,内存不足的问题,高手指点一二!!!(困扰我很久了)

ghlrobin1979 2004-02-29 09:22:42
如下程序所示.
开辟动态数组时被告知系统内存不足,然后cpu100%

请问如何解决?
其中这里的m是函数传回的值,为1776。
运行时,执行到data_change =new int[m]时
出现内存不足.不能够开辟动态数组,究竟何因???







in_out[] 是一个1776行,40列的数组



void CCalculate::simp22(int in_out[], int m, int n, int input[], int *no_zero)
{
int i,j,k,l,r;
int k1,k2,k3;
int *data_change;


data_change=(int*)malloc(m*sizeof(int));

for(i=0; i<=m-1 ; i++)
{
//
data_change[i]=0;
}

for(i=0;i<=m-1;i++)
{
k1=0;
for(j=0;j<=n-1;j++)
{
if(in_out[i*n+j]!=0)
k1=k1+1;
}
data_change[i]=k1;
}
k1=0;
for(i=0;i<=m-1;i++)
{
if(data_change[i]==0)k1=k1+1;
}
*no_zero=m-k1;

k2=0;
for(i=0;i<=m-1;i++)
for(j=i+1;j<=m-1;j++)
{
k1=0;
for(r=0;r<=n-1;r++)
{
if(in_out[i*n+r]!=0)
{
k3=0;
for(k=0;k<=n-1;k++)
if((in_out[i*n+r]==in_out[j*n+k])&&(k3==0))
{k1=k1+1;k3=1;}
}
}
if((k1!=0)&&(data_change[i]==k1)&&(data_change[j]==k1))
{
for(l=0;l<=n-1;l++)
in_out[j*n+1]=0;
k2=k2+1;
input[j]=2;
}
}
*no_zero=*no_zero-k2;
free(data_change);

}
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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