malloc

    9熱度

    6回答

    我正在執行一個任務的尾部。我有它正常工作,但我似乎從隨機時間免費獲得一個錯誤。 我看不到,要追蹤到一個模式或除了它是一致的任何東西。 例如,如果我將我的程序稱爲「tail -24 test.in」,我會在多次運行的同一行上得到不正確的校驗和錯誤。但是,使用不同的文件甚至不同數量的行來打印回來,我將無錯地回來。 關於如何追蹤問題的任何想法,我一直試圖調試它幾個小時無濟於事。 這裏是有問題的代碼: 線

    4熱度

    10回答

    這是一個有點假設和粗略簡化,但... 假設一個程序,將調用第三方寫的函數。這些政黨可以被認爲是非敵對的,但不能被認爲是「有能力的」。每個函數都會接受一些參數,產生副作用並返回一個值。他們沒有跑步時沒有狀態。 目標是確保它們不會通過記錄所有malloc(等等)而導致內存泄漏,然後在函數退出後釋放所有內容。 這可能嗎?這是否實用? 附:對我而言,重要的一點是確保沒有分配方式能夠持續消除內存泄漏,而不會

    2熱度

    2回答

    你可以閱讀關於64位調用約定here。 x64函數應該自行清理,但是,當我從.asm中調用malloc時,它將覆蓋RSP和RSP + 8處的值。這似乎很錯誤。有什麼建議麼? public TestMalloc extern malloc : near .CODE align 8 TestMalloc proc mov rcx, 100h 000000018000B

    3熱度

    2回答

    假設我有以下代碼: while(TRUE) { pthread_t *thread = (pthread_t *) malloc(sizeof(pthread_t)); pthread_create(thread, NULL, someFunction, someArgument); pthread_detach(*thread); sleep(10);

    4熱度

    4回答

    在Linux/GCC/C++中,每次調用malloc/free/new/delete時,我都會記錄stderr的內容。我試圖理解一個庫的內存分配,所以我想在運行單元測試時生成這個輸出。我使用valgrind進行mem泄漏檢測,但是我找不到一個讓它只記錄分配的選項。 任何想法?我正在尋找最簡單的解決方案。重新編譯庫不是一個選項。

    4熱度

    2回答

    尋找反饋: http://code.google.com/p/google-perftools/wiki/GooglePerformanceTools

    20熱度

    8回答

    我有一個單線程的嵌入式應用程序,可以分配和取消分配很多很多的小塊(32-64b)。基於緩存的分配器的完美場景。儘管我可以嘗試寫一篇,但這可能會浪費時間,而且還沒有經過良好的測試和調整,因爲一些解決方案已經在前線。 那麼什麼是我可以用於這種情況的最佳分配器? 注意:我在系統中使用了一個Lua虛擬機(這是80 +%分配的罪魁禍首),所以我不能輕易重構我的代碼以使用堆棧分配來提高分配性能。

    7熱度

    5回答

    在這裏動態存儲器的討論:"Intro to C Pointers and Dynamic Memory" 作者指出: 像這樣的存儲器塊可有效地用作一個更靈活的陣列。這種方法實際上在現實世界的C程序中更爲常見。它也比「可變大小的數組」 類型存儲器塊他所談論的是這樣更可預測的和靈活的: const int size = 5; int * array = calloc(size, sizeof(int