此下學習内容僅供參考學習,無詳細解說,後期不斷完善。敬請期待···········
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;
}