關於C 中new的一些理解

2021-07-05 10:17:50 字數 745 閱讀 4813

#include

int main()

string* a=new string;實際上分為兩步進行:

1.呼叫 void* operator new (size_t size),申請了size大小的記憶體,這個函式是可以過載的,但是第乙個引數必須是size_t size;

2.呼叫建構函式,但是這一步我們是不能夠修改的,但是我們卻可以呼叫placement new來彌補這一點:

void* memory=operator

new(sizeof(string));

string* a=new(memory)string("hello");

struct node

node(elem v,node*n)

elem value;

node* next;

//新增freelist

static node* freelist;

//分配記憶體

void* operator

new(size_t size)

node* it=freelist;

freelist=freelist->next;

return it;

}void

operator delete(void* ptr)

};

關於c 中的一些感念的理解。

最近一段時間在學習c 因為以前從事系統管理類的工作,主要是cisco和linux包括windows伺服器方面的工作,最近一段時間工作不是太忙,所以可以抽空來學習一下c 開始學習有一段時間了,對裡面的一些感念有些理解的不是太深,最近查閱了一些資料,對這些感念做了乙個通俗的理解,特記錄下來,以備後用。1...

關於C指標的一些理解

有時總被指標的用法及型別所困擾,那我簡單理解一下指標。指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。如下例子 1 int ptr 2 cha...

關於Linux中umask的一些理解

剛接觸linux的時候,有點搞不懂linux中的umask是幹什麼的。現在,做乙個總結。umask是chmod配套的,總共為4位 gid uid,屬主,組權,其它使用者的許可權 不過通常用到的是後3個,例如你用chmod 755 file 此時這檔案的許可權是屬主讀 4 寫 2 執行 1 同組的和其...