VC++里: int i; int *p=new int[10]; i=(int)p; ... p=(int *)i; delete p; 这样有问题吗?
classa{a();~a();int*i;int*m;intindex;voidb();voidc();}a::a(){index=0;}a::~a(){char*s;...
class a
{
a();
~a();
int *i;
int *m;
int index;
void b();
void c();
}
a::a()
{
index=0;
}
a::~a()
{
char *s;
for(int j=0;j<index;j++)
{
if(m==1) (int *)s=(int *)i[j];
if(m==2) (char *)s=(char *)i[j];
delete s;
}
}
void a::b()
{
char *p=new char[10];
i[index]=(int)p;
m[index]=2;
index++;
}
void a::c()
{
int *q=new int[5];
i[index]=(int)q;
m[index]=1;
index++;
}
函数b()和c()可以根据需要调用多次,所以有这样的想法 展开
{
a();
~a();
int *i;
int *m;
int index;
void b();
void c();
}
a::a()
{
index=0;
}
a::~a()
{
char *s;
for(int j=0;j<index;j++)
{
if(m==1) (int *)s=(int *)i[j];
if(m==2) (char *)s=(char *)i[j];
delete s;
}
}
void a::b()
{
char *p=new char[10];
i[index]=(int)p;
m[index]=2;
index++;
}
void a::c()
{
int *q=new int[5];
i[index]=(int)q;
m[index]=1;
index++;
}
函数b()和c()可以根据需要调用多次,所以有这样的想法 展开
展开全部
C++的动态数组能“动”的只有其中一维,如果你非要new出个动态二维来,有三种方案: 1、固定第二维: int(*p)[20]=new int[m][20]; 用完后delete[] p; 2、分步分配: int**p=new int*[m]; for(int i=0;i<m;i++) p[i]=new int[n]; 用完后 for(int i=0;i<m;i++) delete[] p[i]; delete[] p; 3、标准模板库: #include<vector> using std::vector; vector< vector<int> > p; p.resize(m); for(int i=0; i<m; i++) p[i].resize(n); 用完后自动释放 三种方式都可以用p[i][j]来访问数组元素。
可以选择,可以参考一下。2011/9/23 17:26:47
2011-09-23
展开全部
C++的动态数组能“动”的只有其中一维,如果你非要new出个动态二维来,有三种方案:
1、固定第二维:
int(*p)[20]=new int[m][20];
用完后delete[] p;
2、分步分配:
int**p=new int*[m];
for(int i=0;i<m;i++)
p[i]=new int[n];
用完后
for(int i=0;i<m;i++) delete[] p[i];
delete[] p;
3、标准模板库:
#include<vector>
using std::vector;
vector< vector<int> > p;
p.resize(m);
for(int i=0; i<m; i++) p[i].resize(n);
用完后自动释放
三种方式都可以用p[i][j]来访问数组元素。
1、固定第二维:
int(*p)[20]=new int[m][20];
用完后delete[] p;
2、分步分配:
int**p=new int*[m];
for(int i=0;i<m;i++)
p[i]=new int[n];
用完后
for(int i=0;i<m;i++) delete[] p[i];
delete[] p;
3、标准模板库:
#include<vector>
using std::vector;
vector< vector<int> > p;
p.resize(m);
for(int i=0; i<m; i++) p[i].resize(n);
用完后自动释放
三种方式都可以用p[i][j]来访问数组元素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有内存泄漏。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
会有问题,不要这样做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询