malloc

    0熱度

    4回答

    嘿,大家好,我得到了一個堆腐敗錯誤,我找不出來。 char * c = (char *) malloc(1); // main loop _gcvt_s(c, 100, ball->get_X_Direction(), 10); if(pushFont(c, (SCREEN_WIDTH - 30), (SCREEN_HEIGHT - 40), message, screen, f

    58熱度

    6回答

    在Linux上,如果我是malloc(1024 * 1024 * 1024),malloc實際上做了什麼? 我確定它會爲分配分配一個虛擬地址(如果需要的話,通過走空閒列表並創建一個新的映射),但它實際上是否創建了1個GiB值的交換頁面?或者是否mprotect的地址範圍,並創建頁面,當你實際觸摸他們像mmap呢? (我指定的Linux,因爲the standard是對這類細節沉默,但我很想知道其他

    0熱度

    1回答

    我只是將一個Objective-C庫轉換爲C庫,希望能夠跨平臺。然而,一切似乎都沒有問題,直到我把這件東西送去處理。 這是在我得到一個錯誤。 回想幾個修訂,我注意到調試器中的一些東西。 右像這樣一個malloc分配字符串後: char *theString = malloc(SOME_SIZE * sizeof(char)); 我會看到theString是\ X03和* theString是

    1熱度

    1回答

    任何人都可以看到這段代碼有什麼問題嗎? SIZE_BG是6MB,因爲我試圖繪製一個大的位圖圖像(3366x600)。我使用malloc來防止我的圖像溢出堆棧。我在調用glDrawPixels()時遇到訪問衝突錯誤。 bgPtr似乎指向正確的數據,因爲我在調用glDrawPixels之前檢查了前幾個字節,它們是正確的。 bgPtr = (char*)malloc(SIZE_BG); fst

    3熱度

    8回答

    我有一個結構,只包含指向我分配的內存的指針。有沒有一種方法可以遞歸釋放每個指針的元素,而不是每個元素都自由調用? 例如,假設我有這樣的佈局: typedef struct { ... } vertex; typedef struct { ... } normal; typedef struct { ... } texture_coord; typedef struct { ve

    0熱度

    4回答

    由於我對分配指針的類型內存的理解不夠,下面的調用barrier_create會導致總線錯誤(「hi」從不打印)。 typedef struct barrier barrier_t; typedef struct barrier *barrier_p; barrier_p test_barrier_p; int main(int argc, char *argv[]) { bar

    0熱度

    7回答

    我有下面的代碼片段,它在'str'中的分配期間崩潰,這是一個動態分配。 char *str; int file_size; FILE *fptr; if (!(fptr = fopen(filename, "r"))) goto error1; if ((fseek(fptr, 0L, SEEK_END) != 0)) goto error2; i

    4熱度

    8回答

    我只寫了幾個星期的C,並沒有花時間擔心自己對malloc()太多了。然而,最近我的一個程序返回了一串快樂的面孔,而不是我期望的真實/錯誤值。 如果我創建這樣一個結構: typedef struct Cell { struct Cell* subcells; } 再後來初始化像這樣 Cell makeCell(int dim) { Cell newCell; f

    0熱度

    3回答

    可能重複: Malloc thread-safe? 聽說的glibc的malloc()不是線程安全的,因爲一個進程調用malloc的幾個線程()同時將導致未定義的行爲。而我的問題是,如果一個線程調用free(),另一個線程將調用malloc(),這是否會導致未定義的行爲?

    26熱度

    4回答

    在我看來,我曾經在boost :: pool中玩過幾次,我正在認真地用很多對象「流失」來敲擊堆。通常我使用boost::object_pool或boost::pool_alloc作爲STL模板參數。但結果總是表現幾乎沒有變化,或明顯惡化。 我很想聽聽有關它的任何成功案例。 我應該尋找什麼樣的東西在分析輸出可能表明boost :: pool可能有幫助? 難道要改善舊的malloc真的很難嗎?