c語言這new是什么作用
c語言這new是什么作用 ?
慕蓋茨4494581
2019-02-07 19:07:09
TA貢獻1853條經驗 獲得超9個贊
new是C++中用于動態內存分配的運算符,在C語言中一般使用malloc函數。
有三種用法:new operator、operator new、placement new
1)new operator:
new operator是最常見的用法,如 Emp* e1 = new Emp;(Emp是一個類) 這里new有兩種作用:分配空間、初始化對象(調用了構造函數)
2)operator new:
operator new作用是只分配空間,不調用構造函數,如:Emp* e2 = (Emp*)operator new(sizeof(Emp));
3)placement new:
placement new作用是在已分配好的空間上初始化對象,不分配空間,調用拷貝構造函數,如:new ((void *)e2) Emp(*tb1);
TA貢獻1848條經驗 獲得超10個贊
C語言中“new”是一個關鍵字,同時也是操作符。
當我們使用關鍵字new在堆上動態創建一個對象時,它實際上做了三件事:獲得一塊內存空間、調用構造函數、返回正確的指針。當然,如果我們創建的是簡單類型的變量,那么第二步會被省略。
舉報