heboplus 2016-12-21 11:13 采纳率: 0%
浏览 990

new一个数组空间,delete []p;可以不要前面的[]吗,下面的A.pMat不要也运行正确?

#include
using namespace std;
typedef struct
{int*pMat;
int row,col;}MAT,*pMAT;
void 生成矩阵A(MAT&a)
{
int i,j;
a.pMat=new int[a.row*a.col];
int *p=a.pMat;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
p[i*4+j]=(i+1)*30+3*j;
}
void 生成矩阵B(MAT&a)
{int i,j;
a.pMat=new int[a.row*a.col];
int *p=a.pMat;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
p[i*4+j]=(i+1)*30+2*j;
}

void 显示矩阵(char *str,MAT&a)
{int i,j;
cout<<str<<endl;
int*p=a.pMat;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
cout<<p[4*i+j]<<" ";
cout<<endl;}
}

void 矩阵相减(MAT&a,MAT&b,pMAT c)
{
int i,j;
int*p1=a.pMat;
int*p2=b.pMat;
c->pMat=new int[12];
int*p3=c->pMat;

for(i=0;i<3;i++)
for(j=0;j<4;j++)
p3[i*4+j]=p1[4*i+j]-p2[4*i+j];

}

void main()
{
int m=3,n=4;
MAT A={0,m,n},B={0,m,n};
pMAT C=new MAT;
生成矩阵A(A);
生成矩阵B(B);
矩阵相减(A,B,C);
显示矩阵("A:",A);
显示矩阵("B:",B);
显示矩阵("C=A-B:",*C);
delete A.pMat;
delete B.pMat;

delete C->pMat;
delete C;
system("pause");
}

  • 写回答

1条回答 默认 最新

  • LininCH 2016-12-21 12:12
    关注

    要看你delete的是什么吧,这个是一片空间,就需要加上;如果是存放单个数值的空间,就可以不加。

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型