C++ new用法的個人見解
在C++ 中,用new/delete操作符取代malloc/free
- 申請一個物件:
int * p = new int;
釋放:
delete p;
delete後將記憶體交還給記憶體管理器。
注意:
- new 的返回值直接就是物件指標,不用再轉換。
- new的時候可以設定初始值
new int(12);
- 申請多個物件(例如申請1024個int物件)
int * p = new int[1024];
釋放:
delete [] p;
- 注意[]指定物件個數。
- 如果new的時候用了[],則釋放的時候使用delete []操作符。
eg:
#include<iostream>
using namespace std;
int main()
{
int* p = new int[1024];
for (int i = 0; i < 1024; i++)
{
p[i] = i + 1;
}
cout << p[0] << endl;
delete [] p;
return 0;
}
在delete [] p處加斷點除錯,觀察p指向的記憶體,如下圖所示:
觀察到p指向的1024個記憶體地址都已經賦值成功(這裡注意高位高地址小端模式)。
- new 物件
new一個物件:
Student * stu = new Student;
new多個物件:
Student * stu = new Student[500];
for(int i = 0;i < 500;i ++)
{
st.[i].id = i + 1;
}
delete 後指標的值其實沒有變,但是可能已經交給其他應用程式使用了。
相關文章
- Java Enum 個人見解Java
- C++ 指標常見用法小結C++指標
- 遞增排序個人見解排序
- c++ vector用法詳解C++
- 關於 Laravel 的一些個人見解Laravel
- c++ 中vector 常見用法(給初學者)C++
- 全屏HTML 5適配 個人見解HTML
- Floyd演算法之個人見解演算法
- c++ 智慧指標用法詳解C++指標
- 淺談,C語言編譯原理的個人見解C語言編譯原理
- 做個地道的c++程式猿:copy and swap慣用法C++
- 詳解C++的模板中typename關鍵字的用法C++
- C++中const的用法C++
- C++中& 的基本用法C++
- 錯誤程式碼的個人見解以及邏輯分析題
- 個人使用Kotlin的幾種習慣用法Kotlin
- C malloc() free(), C++ new() delete()C++delete
- Java 列舉(enum) 詳解7種常見的用法Java
- WWDC18 What’s New in LLVM 個人筆記LVM筆記
- c++ map用法C++
- useradd 命令的常見用法
- nslookup命令的常見用法
- C#開發中,學習整理的 New 的幾個常見問題C#
- C++ 函式 realloc 的用法C++函式
- Mac 下 Docker 執行較慢的原因分析及個人見解MacDocker
- C/C++中的new/delete、構造/解構函式、dynamic_cast分析C++delete函式AST
- Java enum列舉類詳解 列舉的常見用法Java
- 理解new和實現一個new
- C++用new建立二維陣列的方法C++陣列
- 關於malloc原始碼中的bin_at巨集定義的個人見解原始碼
- vim常見用法
- 關於人工智慧技術應用場景的個人見解人工智慧
- SQLNET.ORA 的常見用法SQL
- 常見的錯誤 SQL 用法SQL
- C++中const的簡單用法C++
- C++中行內函數的用法C++函數
- C++中函式呼叫的用法C++函式
- 【C++】C++ new和malloc到底哪裡不一樣C++