天天看點

004--C++動态記憶體配置設定(最優)

此下學習内容僅供參考學習,無詳細解說,後期不斷完善。敬請期待···········

C++動态記憶體的配置設定與C語言動态記憶體配置設定的差別:

  • C語言的動态記憶體配置設定是函數,C++的動态記憶體配置設定是運算符。
  • C語言的動态記憶體配置設定不能和C++的動态記憶體配置設定不能混合使用。

C++動态記憶體配置設定new和delete 的用法:

004--C++動态記憶體配置設定(最優)

使用動态記憶體配置設定時的注意事項:

C++動态記憶體配置設定二維指針,二維數組的使用:

動态記憶體配置設定代碼學習參考:

#include"stdlib.h"
//動态記憶體:ma00fc calloc realloc free
//C++記憶體配置設定:new delete 
#include"stdio.h"
#include<memory.h>
int main(){
  int a = 4407873;
  printf("%s\n",(char*)&a);
  int *p =(int*)malloc(sizeof(int)* 4);//棧區資料自動釋放,堆區資料手動釋放
  free(p);//釋放的是堆區資料
  p = NULL;//釋放棧區資料,完全釋放記憶體------c語言記憶體操作

  int *p1 = new int;//配置設定單個記憶體,在堆區配置設定四位元組
  delete p1;
  p1 = NULL;
  
  int *p2 = new int(5);//配置設定單個記憶體,在堆區配置設定四位元組,并給這個四位元組指派4
  delete p2;
  p2 = NULL;

  int *p3 = new int[4];//配置設定 連續記憶體,在堆區配置設定16個位元組。不能給記憶體位元組指派
  memset(p3,0,sizeof(int)*4);//記憶體逐位元組配置設定,頭檔案memory.h
  delete[] p3;//連續釋放記憶體。注意:[]隻能寫在中間
  p3 = NULL;

  int** p4 = new int*;
  int b = 10;
  *p4 = &b;
  **p4 = 123;
  printf("%d\n",b); 
  p4= NULL;

  int** p5 = new int*[4];//堆區配置設定動态指針數組
  delete[] p5;
  return 0;

}      

繼續閱讀