C 動態開闢

2021-09-01 08:13:01 字數 1097 閱讀 6000

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函式可以做到對動...