关于内存的问题
请教一个问题 我做集合的算法
在交集和并集中程序出错
大体程序如下
/*#################求并集###############*/
set& set::together(set& s1)
{
static set ab;
int *temp = new int[s1.len+len];
int p=0;
for(int i=0;i<len;i++)
*(ab.array+i)=*(array+i);
for(int j=0;j<s1.len;j++)
for(int k=0;k<ab.len;k++)
if(*(ab.array+j)!=*(s1.array+k))
{
*(ab.array+ab.len+p)=*(s1.array+k);
p++;break;
}
cout<<"这两个数组的并集为:"<<endl;
if(ab.len==0)
cout<<"error!!没有元素在数组中请检查你的输入:"<<endl;
ab.display();
return ab;
}
/*#################求差集###############*/
set& set::different(set& s1)
{
static set ab;
for(int k=0;k<len;k++)
*(ab.array+k)=*(array+k);
for(int i=0;i<s1.len;i++)
for(int j=0;j<ab.len;j++)
if(*(ab.array+j)==*(s1.array+i))
*(ab.array+j)=*(ab.array+(j+1));
cout<<"两个数组的差集为:"<<endl;
if(len==0)
cout<<"error!没有元素在数组中请检查你的输入:"<<endl;
ab.display();
return ab;
}
感觉是内存分配的问题
那怎么改