動態內存分配(C++)


  • C++中的動態內存分配
  1. C++中通過new關鍵字進行動態內存分配
  2. C++中的動態內存申請是基於類型進行的
  3. delet關鍵字用於內存釋放
1  1 //變量申請
2  2 Type*pointer = new Type;
3  3 //....
4  4 delete pointer;
5  5  
6  6 //數組申請
7  7 Type*pointer = new Type[N];
8  8 //....
9  9 delete[] pointer;

 

10 #include "stdio.h"
11 int main()
12 {
13         //new可以初始化
14         int *p = new int(100);
15         //*p = 5;
16         *p = *p + 5;
17         printf("p=%p\n",p);
18         printf("*p=%d\n",*p);
19         delete p;
20         p = new int[10];
21         for (int i = 0; i < 10;i++)
22         {
23                p[i] = i + 1;
24                printf("p[%d]=%d\n",i,p[i]);
25         }
26         delete p;
27         return 0;
28 }
運行結果:

pi@raspberrypi:~ $ g++ main.cpp
pi@raspberrypi:~ $ ./a.out
p=0x15c4058
*p=105
p[0]=1
p[1]=2
p[2]=3
p[3]=4
p[4]=5
p[5]=6
p[6]=7
p[7]=8
p[8]=9
p[9]=10

  • new關鍵字與malloc函數的區別
  1. new關鍵字是C++的一部分
  2. malloc是由C庫提供的函數
  3. new以具體類型為單位進行內存分配
  4. malloc以字節為單位進行內存分配
  5. new在申請單個類型變量時可進行初始化
  6. malloc不具備內存初始化的特性
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM