日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++中使用new和delete运算符实现二维数组的操作

發布時間:2025/3/19 c/c++ 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++中使用new和delete运算符实现二维数组的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線上代碼,解析在下方

  • List item
  • #include <iostream> #include <string> #include <cstring> #include <iomanip> using namespace std;int main() {int m = 4, n = 5;//處理一個m行n列的二維整型數組int * *p = new int *[m];//申請嗎個元素,每個元素是int *類型的內存空間for (int i = 0; i < m; i++)p[i] = new int [n];//p數組的每個元素p[i]都是指針for (int j = 0; j < m; j++)//指向n個int 類型的內存空間首地址for (int i = 0; i < n; i++)p[j][i] = j * i;//給元素賦值for (int j = 0; j < m; j++) {for (int i = 0; i < n; i++)cout << setw(3) << left << p[j][i];//訪問元素cout << endl;}for (int i = 0; i < m; i++)delete []p[i];//釋放內存delete []p;return 0; }

    程序運行結果如圖所示

    一個m行n列的整型二維數組可以看作由m個一維數組組成,每個一維數組有n個整型元素。 其基本思路是,為每一行數組申請一段內存空間( new int[n],Line10),保存申請到的這段內存空間的首地址(int *類型),一共有m行,把這m個地址存儲到一個int類型的數組中。顯然,這需要為該數組申請m個元素,每個元素都是int*類型( new int[m],Line7)。其具體實現時的順序是:先申請一段內存空間存儲m個int類型的元素用指針變量p存儲這段空間的首地址(Line7);然后依次申請m個一維數組的內存空間(用Line8的for循環實現),用數組p的元素p[i]存儲申請到的內存空間的首地址(Line10)。而釋放內存的順序與申請內存的順序恰好相反:先釋放每一行的內存(Line29),然后釋放存儲每行首地址的內存(Line31)。另外,在例2-5中使用了setw(和left,用于控制數據的輸出格式。setw(3)是指定數據的域寬為3,即每個數都占3列,不足3位的數前補空格,超過3位的數按實際數位輸出;left的作用是指定數據輸出時在域內左對齊,當輸出的數字不足3位時在數字的后面(右面)補空格。使用格式控制符需要包含頭文件< iomanip>[在這里插入圖片描述](https://img-blog.csdnimg.cn/20210122105431892.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5ODM4NjA3,size_16,color_FFFFFF,t_70)希望對大家有幫助呀!

    總結

    以上是生活随笔為你收集整理的C++中使用new和delete运算符实现二维数组的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。