#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 同組的和其...