c 知識點 大小不斷調整的記憶體空間

2021-08-28 07:42:37 字數 622 閱讀 4183

再做音訊資料傳送時,遇到這樣的情況

介面只接受10ms的資料量,不是10ms資料量的整數倍,介面呼叫不成功

因為一次獲得的資料,有可能不滿足傳送條件,所以需要和後面的疊加,而傳送成功後,有需要將傳送出去的記憶體空間釋放,同時保留剩餘未傳送出去的資料

方式1一開始想用 new  delete ,可是沒有類似realloc這樣重分配記憶體空間的函式,所以還是用malloc  free 更好一點

增加資料 realloc

刪除資料,memcopy剩餘資料到新開闢記憶體,將新開闢空間作為音訊資料指標

char* m_psendaudiodata;    //記憶體空間位址

int m_nsendaudiolength; //記憶體空間大小

//lenth buf大小

//nneedlength 10ms資料量

sendselfaudodatacallback(const char* buf, int length, int nneedlength, int sample)

else{

//調整記憶體空間

m_psendaudiodata = (cha

C 中類所佔記憶體空間大小

學習虛繼承知識的時候,無意中發現了關於c 類所需記憶體的面試題,通過sizeof 計算類所需的記憶體位元組數。當時自己就懵了,因為學習c 的時候,就知道類在宣告時是不會分配記憶體空間的還以為自己學習的東西出錯,還來才知道sizeof 作用 sizeof是 c c 中的乙個操作符 operator 簡...

檔案的大小與記憶體空間

乙個檔案的大小就是其實際內容具有的位元組數,以byte為衡量單位,只要內容不發生變化,就不會改變。乙個檔案的所佔空間是由每個磁碟的簇與檔案大小決定的,對於每乙個不同的磁碟,它會有不同的簇 分配單元 allucation cluster 而具體計算所佔空間的公式為 簇數 floor 檔案大小 每個分配...

C 的記憶體空間 堆疊

c 記憶體空間布局圖示對照。命令列引數和環境變數 stack 棧heap 堆bss 未初始化資料段 data 初始化資料段 text 正文段linux下32位記憶體空間分布圖。1.命令列引數和環境變數 shell在執行程式的時候呼叫exec函式將命令列引數傳遞給要執行的程式。使程式了解程序環境,在執...