-
malloc是C語言標準庫中的函數,用于在堆內存中動態分配指定大小的內存空間。它的聲明如下:
c
void *malloc(size_t size);
malloc函數接受一個參數size,表示要分配的內存空間的字節數。它返回一個指向分配的內存空間起始地址的指針。
在這段代碼中,函數func使用malloc函數動態分配了4個int類型元素大小的內存空間,并將起始地址賦給指針變量arr。然后,函數將這個指針變量作為返回值返回給調用者。
在main函數中,通過調用func函數獲取到分配的內存空間的起始地址,并將該地址賦給指針變量p。然后,通過調用free函數,釋放了這塊內存空間。
總之,malloc函數可以用來動態分配內存空間,而free函數則用來釋放已經分配的內存空間,以便其他程序或資源可以重復利用它們。在使用malloc函數分配內存后,務必使用相應的free函數釋放內存,以避免內存泄漏問題。查看全部 -
const 修飾普通變量
const int a,?則表示 a 是一個常量,你不可以在后續對其進行修改。因為 a 不可修改,所以在創建的時候就要對 a 進行賦值,不對其進行賦值則會報錯。
const 修飾指針
只有一個 const,如果 const 位*左側,表示指針所指數據是常量,不能通過解引用修改該數據;指針本身是變量,可以指向其他的內存單元。
int const * p = &a;
只有一個 const,如果 const 位于*右側,表示指針本身是常量,不能指向其他內存地址;指針所指的數據可以通過解引用修改。
int * const p = &a;
兩個 const,*左右各一個,表示指針和指針所指數據都不能修改
const修飾函數參數
?const 修飾函數參數的時候,其作用域僅僅限制在函數內部,只要在函數中保持其不變性就可以了。
const修飾成員函數
const修飾的成員函數不能修改任何的成員函數,
const修飾的成員函數不能調用非const成員函數。
const修飾函數返回值
址傳遞,返回指針,引用。該返回值加一個const,可以防止返回值被調用。
值傳遞,值傳遞時,返回值會復制一份,加不加const都可以。
查看全部 -
靜態聯編
···c
Child * obj = new Child();
Base * baseobj = (Base *)obj;
baseobj->func();
delete obj;
return 0;再來看看這個例子,我們通過強制轉換來指定 func 執行的是哪個。這個過程是在編譯階段就將函數實現和函數調用關聯起來,因此靜態聯編也叫早綁定,在編譯階段就必須了解所有的函數或模塊執行所需要檢測的信息。
動態聯編:
運行虛函數的實現
查看全部 -
繼承與多態
查看全部 -
要將對象分配到堆上,需要用到另外兩個關鍵字,new 和 delete。new 用來分配對象,delete 用來刪除對象。new 會返回一個指針,在使用完畢后,要通過 delete 把這個指針指向的地址釋放掉。
查看全部 -
無法確認指向的指針,或者指向一個無效地址的指針,我們把他叫做野指針
查看全部 -
如果想要通過指針操作變量,只需要使用解引用就可以了
查看全部 -
對于指針的復制,就不能用淺拷貝構造函數,要用深拷貝構造函數,即對被復制對象會新開辟一個空間,把要復制的指針指向的內容復制一份到新內存空間,這樣深拷貝構造之后,兩個指針指向的值是相同的,且空間獨立。查看全部
-
要記得在cpp中展開定義時,要包含相應的hpp頭文件查看全部
-
類的成員默認是私有的查看全部
-
面向過程是自頂向下的思想,邏輯主要是順序,選擇,循環,用動作(數據)的步驟查看全部
-
比起直接調用函數,用指針函數去調用,可以得到用一個變量get函數返回值,也可以調用時傳遞參數查看全部
-
數組名相當于一個常量指針查看全部
-
函數指針的定義和調用
查看全部 -
字節序,就是 大于一個字節類型的數據在內存中的存放順序。
計算機硬件有兩種儲存數據的方式:大端字節序(big endian)和小端字節序(little endian)。
我們現在有一個整數是258。用16進制表示是0x0102,然后我們把這個整數拆分成兩個字節,第一個字節為 0000 0001,第二個字節為 0000 0010。
查看全部
舉報