面試歸來2–malloc /free 與new delete 區別

1  相同點:都可用於申請動態記憶體和釋放記憶體2  不同本質不同:(1)malloc/free 是C/C++ 庫函數 而new/delete 是C++ 運算子。    對於非內部資料類型的對象而言,malloc/free 無法滿足動態對象的建立。對象建立時要調用 建構函式 對象在結束時要調用解構函式。    由於malloc/free不是運算子,不再編譯器控制許可權之內,不能把執行建構函式和解構函式的任務交給malloc和free.   

用FFMPEG SDK進行視頻轉碼壓縮時解決音視頻不同步問題的方法

      用FFMPEG SDK進行視頻轉碼壓縮的時候,轉碼成功後去看視頻的內容,發現音視頻是不同步的。這個的確是一個惱火的事情。我在用FFMPEG SDK做h264格式的FLV檔案編碼Filter的時候就碰到了這個問題。        經過研究發現,FFMPEG

面試歸來3–宏和內嵌函式的區別

1 函數在調用時 程式要跳轉到被調用函數所在的那個記憶體位址空間,進而執行被調用函數的代碼,待執行完被調用函數後,程式再回到跳轉之前的位置繼續執行。這就需要在程式跳轉之前儲存現場並記憶執行的地址,轉回後恢複現場,按原來儲存的地址繼續執行。這樣就會有一定時間和空間的開銷影響程式效率。什麼是宏?1 預先處理命令:在來源程式中以#開頭的命令,如 #include # define  預先處理部分: 在源檔案中,在函數之外,來源程式之前的預先處理命令。 

面試歸來4–多線程同步機制區別

佛說,彼岸花,開一千年,落一千年,花葉永不相見。情不為因果,緣註定生死。1 進程的組成:虛擬地址空間,代碼,系統資源。  線程分類:使用介面執行緒,主線程。舉例:CWinApp 就是一個使用介面執行緒。  線程間通訊的方式有兩種:1 全域變數 2 自訂訊息響應  線程間同步的方式有四種:MFC提供的同步對象                          1 臨界區 CCriticalSection                          2 事件 CEvent           

面試歸來5–多進程通訊

1 處理序間通訊:InterProgress  Communition   (IPC). 即不同進程間資料交換和資料共用。  具體方法:1 檔案對應            (Memory--mapped file) 能使進程把檔案內容當做進程地址空間的一塊記憶體位址來對待。            因此進程不必使用I/O操作,只需通過指標操作就可以讀取和修改檔案的內容。            場合:本地機器的進程間。還要考慮進程同步。            2 共用記憶體            3

面試歸來6–模板函數 函數模板 模板類 類模板 區別

1 記住一個執行個體template<class類型形參表>傳回型別 函數名(形參表){//函數定義體 } template <class T> T min(T x,T y);////////////////////////////////#include<iostream.h> template<class T> /*函數模板聲明*/T min(T x , T y){if(x<y ) return x;else return

重疊I/O處理多用戶端的優勢

看了PiggyXP 【小豬】的關於重疊I/O的文章 先向 小豬哥致敬昂,他的研究方向也是網路開發。在處理TCP並發線程上,一般我們採用一個線程處理接受用戶端的串連,然後開出一個線程處理與這個用戶端的互動過程. 但是,跟據機器的效能與作業系統的限制,一般在幾百個並發線程,也就是同時處理幾百個用戶端串連. 為了處理更多的用戶端串連,可以採用重疊I/O. 小豬哥語錄:"從《windows網路編程》中提供的實驗結果中可以看到,在使用了P4 1.7G

ffmpeg編解碼詳細過程

主要流程:1. 註冊所有容器格式和CODEC:av_register_all()2. 開啟檔案:av_open_input_file()3. 從檔案中提取流資訊:av_find_stream_info()4. 窮舉所有的流,尋找其中種類為CODEC_TYPE_VIDEO5. 尋找對應的解碼器:avcodec_find_decoder()6. 開啟轉碼器:avcodec_open()7. 為解碼幀分配記憶體:avcodec_alloc_frame()8.

DSNetwork/Receiver 緩衝池實現機制分析

在CBufferPool中有如下代碼:  for (i = 0; i < dwPoolSize; i++) {        pBuffer = new CBuffer (                        this,                        m_dwBufferAllocatedLength,                        phr                        );            省略錯誤檢查代碼......   

GraphEdit不顯示遠程圖表及Win7下Directshow無法渲染檔案的解決辦法

   GraphEdit是一個很好用的工具,尤其對寫DirectShow程式的朋友來說,DirectSpy更是如虎添翼,可以使其察看絕大部分的遠程圖表,即使其未加入ROT。但是在我的電腦上卻出了一點小問題,regsvr32註冊了DirectSpy.ax,開啟wmp,GraphEdit可以發現並串連到它的遠程圖表,也可以控制其播放停止,但是卻不顯示任何圖表內容,十分怪異。後來用DSGraphEdit,提示說“Incompatible Version of RPC

ADO之_variant_t 和 _bstr_t

_variant_t 和 _bstr_t2008-06-03 15:28BSTR(Basic

7月的一天

師父跟我說 “把在開發過程中遇到的問題,整理成心得,一些關鍵東西,也要寫出來”我今天在翻出5月份寫的MPEG4接收filter時 竟然發現我的電腦裡有多個MPEG4接收filter的源碼,而且各個檔案夾裡的源碼不知道有什麼區別然後在確定了最後的版本後 一調試竟然 不行,很清晰的記得 5月末寫完時是 可以的,回想起師父說的話 忽然明白一個道理:光榮是在於平淡,艱巨是在於漫長 人們只專註於更好更快的走自己的路 卻沒發現 堅持走完才是最重要的。我太過關注 開發進度 而忽略了對項目的總結 對技術的總結 

一道不知哪裡來的面試題(不用變數求字串長度)

道聽途說了一道面試題,不知道是哪家的,挺有意思的。 題目是這樣:不能申請任何變數,重寫strlen函數,求字串長度。當時的直覺就是如果能有個棧就好了,可以用棧來解決計數問題,可是那必須得申請變數,想來想去就想到程式調用棧了,也就有了遞迴解法。 當然了在程式裡面沒有考慮字串太長遞迴層次太深導致的棧溢出問題。^^ #include<iostream>using std::cout;using std::endl;size_t strlen(const char *p){if(p ==

VC字元類型轉換

 1、cstring   to   char*     經過類型強制轉換,可以將cstring類型轉換成char*,例如:     cstring   cstr   =   "hello,world!";     char*   zstr   =   (char*)(lpctstr)cstr;         2、char*   to   cstring     char*類型可以直接給cstring,完成自動轉換,例如:     char*   zstr   =   "hello,world!

音視頻流的發送

1 請教大夥   我只做過 MPEG4視頻流的RTP打包傳輸 接收  現在加入了音頻採集 所以要發送 音視頻流  我想請問大夥 在發送時 一般的做法是 音視頻流分開發送  還是 發送音視頻的合成流?答案: 直播考慮即時性的話,就可能要考慮丟視頻包、保音頻包;分開傳輸比較好點播不考慮即時性、要求同步的話,可以進行緩衝;合并傳輸比較好 現在的話 對合成流打包 就不需要有什麼講究了吧 在接收端 解RTP包 在接 分解 filter 再 分別解壓音視頻流

GetMessage()用法執行個體

主線程中定義:m_ThreadStop = FALSE;HANDLE hHandle = CreateThread(NULL,0,PlayVideoFile,(void*)this,0,NULL);//在子線程中PlayVideoFile 如果線程正常結將束//m_ThreadStop=true//子線程 實現建立 過濾圖表 串連filter等       while (!m_ThreadStop)       {               MSG msg;          

一個命令列參數解析器

    因工作需要寫一個console工具程式,運行參數很多,記得linux下有一個系統函數getopt可以很好得協助程式員解析命令列參數,但是在VC中沒有這個函數,研究了下linux中對該函數的協助資訊和標頭檔getopt.h,重新實現了getopt和getopt_long這兩個函數,因為沒有讀過linux下getopt這個函數的原始碼,所以這個函數肯定不夠完善,不過經過試用,還是能夠滿足我個人需求的,這裡把原始碼貼出來,也請熟悉或者讀過getopt原始碼的朋友指正。GetOpt.h/****

視頻採集—MPEG4壓縮實現

1 先分析 AvCap的例子   (1)構建壓縮filter        代碼如下:IBaseFilter* pFlt = UDsUtils::CreateCompressor(TRUE,"DivX 5.0.2 Codec");if (pFlt){mVideoEncoder = new CDXFilter(mGraph->GetGraph());mVideoEncoder->Attach(pFlt, "DivX Encoder");pFlt->Release();pass =

Using RenderFile (Play MPEG)

This page shows you how to play a MPEG file using directshow. Please note that error handling codes are omitted to keep the sample code simple. Sample codeI would like to show a sample code first, since I think it would be easier to understand

測配量序已耗用時間的幾種方法

很久之前寫的一篇文章了,現在趁著搬家,把它移過來,儘管不夠全面,但是一般意義上的工作夠用了。測配量序已耗用時間的幾種方法 前一段時間在做一個最佳化程式效能的項目,為了測試最佳化的程度,粗略學習了一些測配量序已耗用時間的技術,www.amazon.co.uk/Computer-Systems-Programmers-Randal-Bryant/dp/013034074X在這個方面幾乎沒有可以參考的文獻,以下是我接觸到的一些資料,記錄在此,以備將來參考。1: Computer System:

總頁數: 61357 1 .... 12837 12838 12839 12840 12841 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.