首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ 二維動態陣列釋放崩潰?檢查配置邏輯與指標陣列結構

     編輯:程式設計疑難解答

錯誤代碼片段

arr = new int*[nn];
for (int i = 0; i < m; i++)  // 錯誤:應迭代 n 而非 m
    arr[i] = new int[mm];

正確配置與釋放

// 配置
int **arr = new int*[rows];
for (int i = 0; i < rows; i++)
    arr[i] = new int[cols];

// 釋放
for (int i = 0; i < rows; i++)
    delete[] arr[i];
delete[] arr;

崩潰原因

  • 迴圈上限寫錯(m vs n),導致部分指標未初始化或越界。
  • 釋放時 delete[] arr 遇到野指標觸發 heap corruption。

參考修正

詳見 部落格完整範例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved