catik 2015-04-06 14:28 采纳率: 0%
浏览 1756
已采纳

c++类的对象中分配的内存的内存能不能在在程序中间delete掉再重新分配?

Matrix& Matrix::operator=(const Matrix &mp) {
if (mp.row_n != row_n||mp.column_n != column_n) {
std::cout << "Error , size not match" << std::endl;
return this;
}
/

for (int i = 0; i < row_n; i++) {
delete[] element[i];
}
delete[] element;
element = (int **)new int*[mp.row_n];
for (int i = 0; i < column_n; i++)
element[i] = new int[mp.column_n];
*/
for (int i = 0; i < row_n; i++)
for (int j = 0; j < column_n; j++)
element[i][j] = mp.element[i][j];
return *this;
}

注释中的那一句加上之后程序就报错说*** Error in `./temp': double free or corruption (out): 0x0000000000caf1d0 ***



  • 写回答

5条回答 默认 最新

  • lx624909677 2015-04-07 01:48
    关注

    当然可以了,指针指向的区域,可以释放掉再从新分配的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 arduino控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥85 maple软件,solve求反函数,出现rootof怎么办?
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿