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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

【❌❌vectorの奇技淫巧⭕⭕】C++ vector 如何正确处理动态申请内存的元素

發布時間:2025/3/15 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【❌❌vectorの奇技淫巧⭕⭕】C++ vector 如何正确处理动态申请内存的元素 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++ vector 插入動態內存(new、malloc申請的內存)及銷毀動態內存 (delete 、free)demo

我們使用vector時候,有時候會插入一些動態內存數據(例如new出來的指針插入到vector中)。這時候我們一定要注意C++的內存管理,因為C++的內存管理原則,誰申請的,誰銷毀。我們如果不對vector里的指針對應的動態內存進行銷毀操作,直接clear()的話就會造成內存泄露。所以我們需要首先遍歷vector,把vector中元素存儲的指針對應動態內存銷毀掉,然后再clear()掉vector。

demo示例:

#include <vector> #include <iostream> #include <cstring> using namespace std;int main() {vector<char *> obj;//vector中插入動態內存for(int i=0;i<10;i++){char * ptr = new char[100];memset(ptr, 0 , 100);obj.push_back(ptr);}//需要清理申請的動態內存,然后才能清空vector,否則會造成內存泄露for(vector<char *>::iterator it = obj.begin(); it != obj.end(); it++){if(*it != NULL){delete *it;*it = NULL;}}obj.clear();return 0; }

番外篇:new char[100]和new char(100)的區別

寫demo的時候,順手寫了new char(100)。。。后面發現不對了。。。哎。。。所以加了個番外篇,記錄一下。
new char[100]和new char(100)的區別,其實這個屬于分配問題,大家使用時還是要注意的,失之毫厘差以千里啊!
詳情如下:

char *p = new char[200]; // new一個char數組,大小為200 char *p = new char(200); //new一個char ,其初始值為200

結束寄語

有關vector小細節的介紹就到此結束啦!下篇博文與各位再見面~

寫博不易,如蒙厚愛,賞個關注,一鍵三連~~點贊+評論+收藏🤞🤞🤞,感謝您的支持~~

總結

以上是生活随笔為你收集整理的【❌❌vectorの奇技淫巧⭕⭕】C++ vector 如何正确处理动态申请内存的元素的全部內容,希望文章能夠幫你解決所遇到的問題。

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