请问,动态new和delete二维数组,是不是应该这样?或者有没有更好的方法?
char **p;
p = new char*[2];
for (int i = 0; i < 2; ++i)
p[i] = new char[3];
for (int i = 0; i < 2; ++i)
delete p[i];
delete[] p;
...全文
3513打赏收藏
动态二维数组
请问,动态new和delete二维数组,是不是应该这样?或者有没有更好的方法? char **p; p = new char*[2]; for (int i = 0; i < 2; ++i) p[i] = new char[3]; for (int i = 0; i < 2; ++i) delete p[i]; delete[] p;
根据大家的提示,我写出了一下代码,大家看看对不对
分配
T **m_pptMat
m_pptMat = new T*[m_iRow];
for (int i = 0; i < m_iRow; ++i)
m_pptMat[i] = new T[m_iCol];
删除
for (int i = 0; i < m_iRow; ++i)
delete m_pptMat[i];
delete m_pptMat;
赋值
for (int i = 0; i < m_iRow; ++i)
{
m_pptMat[i] = new T[m_iCol];
memcpy(m_pptMat[i], cmSrc.m_pptMat[i], sizeof(T) * m_iCol);
}