malloc

    0熱度

    1回答

    我一直注意到在我的應用程序中隨機崩潰似乎都與SignalR-ObjC有關。在收到SignalR數據後或接收數據幾分鐘後,可能會發生崩潰。 的錯誤信息是: malloc: *** error for object 0x7fbae292ce00: incorrect checksum for freed object - object was probably modified after being

    -3熱度

    1回答

    我試圖讀取一個大的文本文件和strcpy/strcat到數組中。 我有一個簡單的程序: char buffer[500000]; char *text; text = malloc(sizeof(char) * 1); strcpy(text,""); while (fgets(buffer,sizeof(buffer),fp) != NULL) { text = reall

    0熱度

    2回答

    我想用C編寫一個shell程序。下面的函數應該獲取用戶行輸入。我不斷收到來自void*「無效轉換char**錯誤在哪裏我嘗試的malloc線。 我不明白爲什麼。任何人都可以解釋一下嗎? char *get_line_input(void) { int scan; int buff_size = 1024; int argument_tracker = 0;

    0熱度

    1回答

    我正在一個安全的嵌入式系統中工作,並且我想修改一下異常處理。 __cxa_allocate_exception正在使用malloc()爲異常對象分配內存。 malloc/new在安全應用程序中是不允許的,所以我必須重寫它。 現在我的問題:有沒有辦法避免malloc在這種情況下? 一些替代方案是: 使用靜態緩衝區,這將導致在多任務/多核心應用程序的問題,所以我不能做到這一點。 在堆上寫入也會導致一些

    0熱度

    1回答

    創建字符串所以我試圖編寫一個程序,基本上通過內存分配,每個字符讀取字符,但只通過鍵盤輸入一個字符串創建一個字符串。我知道有很多(更好)的方法可以做到,但我想通過這種特殊的方式來做到這一點! 下面的代碼: int newstring (char** string) { printf("--------------In function newstring--------------\n");

    0熱度

    1回答

    這個函數的目的是用它的迴文創建一個字符串concat。例如 abc - > abccba 這是我的代碼,結果仍然顯示原始字符串沒有任何變化。我爲字符串及其迴文保留了一些空格,但它仍然不起作用。 char *mirror(const char *str) { char *result = malloc(2 * strlen(str) * sizeof(char)); int st

    1熱度

    2回答

    我正試圖在我的應用程序中實現基本的內存分析器(是的,我知道存在強大的外部軟件)。我一直在研究一些關於如何使用分配鉤子的在線示例,並且我計算了內存分配的計數部分。這只是安裝一個定製的malloc與CtrSetAllocHook,看起來或多或少像下面這樣: int64_t memUsage (0); int __cdecl MyAllocHook( int nAllocType,

    0熱度

    1回答

    我試圖學習C中的圖形,此刻我試圖編寫一個函數,用給定的數據結構初始化圖形。 所以我有結構是: typedef struct linked list{ int index; struct linked list *next; } List; typedef struct { char *name; List *outlist; int outdegree; } Node; ty

    2熱度

    5回答

    我在一家公司的採訪中遇到了一個問題,我無法弄清楚答案的原因。 void newArray(int* local, int size) { local = (int*) malloc(size * sizeof(int)); } int main() { int* ptr; newArray(ptr, 10); } Ans:這會導致內存泄漏,程序不正確。 有

    0熱度

    2回答

    有關malloc的相當簡單的問題。分配區域內可以設置的最大值是多少。例如: char *buffer; buffer = malloc(20); buffer[19] = 'a'; //Is this the highest spot I can set? buffer[20] = 'a'; //Or is this the highest spot I can set? free(buf