c++中的動態記憶體開闢 和名字空間作用域
一.c++中的動態記憶體開闢
c語言中我們用malloc來動態開闢空間:
int *p = (int*)malloc(sizeof(int));
釋放用free:
free(p);
在c++中動態開闢使用new:
int *p = new int;
釋放空間使用delete:
delete p;
我們也可以對其進行初始化操作:
int *q =new int(10); // 給裡面放了值10;
delete q;
c++動態開闢陣列:
int *parr = new int[10];
delete parr;
注意的是c++動態開闢陣列沒辦法進行初始化,但是可以零初始化
int *parr = new int[10]();
把動態開闢的陣列裡的值全置為0;
c++動態開闢二維陣列:
二維陣列相當於多個一維陣列:
int **p = new int*[10];
for(int i = 0;i < 10;i++)
p[i] = new int[10];
釋放空間:
for(int i = 0;i < 10;i++)
delete p[i];
delete p;
c語言動態記憶體開闢失敗會返回null,c++ 開闢失敗會丟擲異常
常量記憶體塊開闢要初始化
重定位new 開闢在自主儲存區,且不需要delete釋放控制項:
int a = 10;
char *p4 = new(&a) char('a');
二.名字空間作用域
::全域性作用域訪問符
如:cy1202::sum; 呼叫cy1202下的sum
同名名字空間作用域會進行合併
using宣告:
using cy1202::sum; 把sum符號暴露在宣告點的作用域下;
using namespace cy1202 把cy1202所有的都暴露在宣告點的作用域下
C動態記憶體開闢
動態記憶體開闢 malloc calloc realloc 都是在堆上申請空間 一 malloc和free void malloc size t size 動態開闢記憶體 include include include int main int ptr int malloc 10 sizeof in...
(C語言)動態記憶體開闢
資料的元素儲存於記憶體中連續的位置上,當乙個陣列被宣告時,他所需要的內存在編譯時就被分配。當然,我們也可以使用動態記憶體分配在執行時為他分配記憶體。在動態記憶體分配中我們需要經常用到malloc,free,calloc,realloc這四個函式。malloc和free分別用於執行動態記憶體分配和釋放...
c 的動態記憶體開闢
1.棧又叫堆疊是向下生長的,該位置存放非靜態區域性變數 函式引數 返回值 指標等等 2.堆用於程式執行時動態記憶體分配,堆是向上生長的 3.資料段 存放全域性資料和靜態資料 4.段 可執行的 唯讀常量 常見筆試題 如果我們對申請的記憶體空間有初始化要求就用calloc realloc函式可以做到對動...