calloc

    -1熱度

    3回答

    G'day! 通常,如果我使用malloc,我會通過檢查是否存在故障: int *A; A=(int *)malloc(NUM_ELEMENTS*sizeof(int)); if (!A) { printf("mem failure, exiting \n"); exit(EXIT_FAILURE); } 我可以做同樣的事情釋放calloc,即使一切都被分配到0?我

    1熱度

    1回答

    我想設置一個字符串數組(在C中,使用Linux)。該數組將保存11個字符串(靜態長度)。我最初有陣列設置爲: char Answers[10][100]; 但在我的代碼有一個調用與fgets(輸入,的sizeof(輸入),標準輸入)的部分。當這個fgets()部分被調用時,我的Answers數組的最後一個元素被輸入的值(關於答案在堆棧上的位置?)覆蓋。所以現在我試圖「鎖定」我用於Answers

    0熱度

    2回答

    我收到錯誤:在第13,20,25,31和36行中無效的操作數爲二進制*。我不確定如何處理動態內存分配到指向矩陣指針的指針。另外,如何使用這個指向指針的方式將整數存儲在矩陣中。另外,我認識到在指針方面有很多更簡單的方法來實現這一點,但是我不得不使用任何括號並將函數輸入提供給我。 void read_matrices(int **A, int **B, int **C, int *m, int *n,

    0熱度

    1回答

    這個問題是一個後續Why does malloc() or new never return NULL?和SIGKILL while allocating memory in C++分配在C內存++: 從答案那裏我可以理解爲什麼一個程序會被殺害試圖寫入內存這是「成功的時候「由malloc分配。但是,在使用calloc(在SLC和Ubuntu上)時,我看到同樣的問題: 而不是返回空指針,程序是SIG

    -2熱度

    1回答

    以下代碼是查找輸入數字之間的友好對的問題的解決方案。我還不知道算法是否是最好的,但我的問題恰恰是下面的代碼一直在返回分段錯誤:11。我檢查並且它甚至沒有進入readNums函數中的for循環。任何建議有什麼不對? #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> /*saves mem

    2熱度

    2回答

    我遇到了從while循環全局更新數組的問題,如下所示。請注意,我只能使用C 95以前的功能。任何幫助將不勝感激!充分貼合斌http://pastebin.com/ss6VgTCD 在頂部我的程序 在我的主函數中聲明我的陣列是使用下面的代碼創建的: printf("\nPlease Enter How Many Data Points You Wish To Enter: \n"); scanf(

    0熱度

    1回答

    我正在寫一個解析程序,它接收來自串行端口的數據,並且在執行時不斷收到「malloc.c 3096 sYSMALLOC斷言失敗」。這是一個非常長的代碼,所以爲了讀者的簡單性,我只包含發生問題的部分。由於使用fscanf將值從端口寫入mdpu_parse,我可以確定問題發生在某處,因爲之前的代碼只是在使用scanf將值寫入數組並將值存儲在結構中時測試結構。 這裏是代碼: #include <sdti

    1熱度

    1回答

    我在下面幾行代碼: DocumentNode *docNode = NULL; initDocNode(docNode, docID, wordFreq); 這裏的initDocNode功能 void initDocNode(DocumentNode *docNode, int docID, int wordFreq) { docNode = calloc(1, sizeof(Do

    -1熱度

    1回答

    當我閱讀關於calloc reference in cppreference中calloc的引用時,發現了以下我沒有得到的提示。 釋放calloc是線程安全的:它的行爲就好像只有通過其參數存取存儲器位置可見,並沒有任何靜態存儲。 以前調用自由或realloc的即解除分配的存儲器的區域同步-與到釋放calloc一個呼叫分配相同的或相同的存儲器區域的一部分。此同步發生在之後通過釋放函數和任何通過cal

    -1熱度

    1回答

    有人問我用C語言編寫這段代碼作爲練習。當他們查看我寫的內容時,他們立即告訴我內存管理有一個很大的錯誤。作爲一個簡單的練習,他們希望我找到並解決這個錯誤。在我的知識中必定存在差距,或者我必須忽略一些非常明顯的東西,因爲我無法在我的生活中找到它。如果有人能幫我弄明白,我會非常感激。 下面是代碼: char int_to_char(int number){ if (number > 9) re