malloc

    -1熱度

    1回答

    我可以使用一些幫助與我的程序, 我寫了一個程序,計算一個句子中的字符數,爲此我正在使用malloc()函數,您可以請參閱我的代碼**ArrPtr=malloc。 我用這個來算字謎,完成它後,我想繼續我的計劃的第二部分,我希望與free(arrPtr); 和程序崩潰釋放內存的時候我沒有(它沒有崩潰使用免費選項)。 這裏是我的代碼, void main() { char str[1001]

    0熱度

    2回答

    int capacity =4; struct Stack* stack = (struct Stack*) malloc(sizeof(struct Stack)); stack -> capacity = capacity; stack -> top = -1; stack -> array = (int*) malloc(stack -> capacity * sizeof

    -1熱度

    2回答

    我想分配使用單個malloc的三角形數組,但我無法找到任何解決方案。我的結構是這樣的: a - - - - b c - - - d e f - - g h i j - k l m n o 我已經使用了兩個malloc。

    -5熱度

    2回答

    非常多。我需要向用戶詢問元素的數量,然後詢問他們想要的整數,最後打印出所有整數。 這是我到目前爲止的代碼: int main(void) { int user_input = 0, elements = 0; printf("How many int elements will you enter?\n"); scanf("%d", &elements);

    7熱度

    1回答

    這裏是dlmalloc算法的詳細描述:http://g.oswego.edu/dl/html/malloc.html 甲dlmalloc塊是由一些元數據,其中包括關於空間在組塊中的量信息bookended。兩個相鄰的空閒塊可能看起來像 [metadata | X bytes free space | metadata ][metadata | X bytes free space | metada

    -1熱度

    1回答

    這是函數list_directory,其中我丟失了分配的指針,之後我無法釋放它。 這應該是一個類似於實現的方式,當它找到一個目錄時,它應該保存它的名稱,並且在列出該目錄後,它應該遞歸地在當前目錄中找到的目錄上調用list_directory。但由於某種原因,它在途中失去了一些元素。 int list_directory(int argc, char *argv[], struct check_in

    0熱度

    1回答

    我們已經移植了一個應用程序,在內核4.10.1的Linux上運行。程序失敗似乎在__GI_abort()調用中掛起,稍後SIGABRT被髮出以防止再次寫入錯誤日誌文件的進程發生。這個相同的程序在Linux內核2.6上運行。堆棧跟蹤和代碼已附加。任何建議都會有幫助。謝謝。 我們早前曾建兩個4.10.1內核和應用程序中使用GCC 6.3.1 的應用已經編有: gcc版本6.3.1 20161221(紅

    1熱度

    2回答

    我書面方式一些簡單的代碼在C測試一些存儲器分配和指針: #include <stdlib.h> #include <stdio.h> int *randomAlloc(int n) { int *address = NULL, i = 0; address = malloc (n * sizeof(int)); for (i = 0;

    -1熱度

    3回答

    我有動態分配的一些問題,因爲我不想指定數組的大小。基本上我在我的程序中需要的是將一個文件的名稱存儲在一個數組中,並確保它不會浪費空間。 我試圖做類似創建陣列name[255],以確保它有足夠的空間,然後動態地分配它,所以它只有所需的空間,就像寫「matrix5」,然後將其存儲在name[255]然後更改name[255]到name[8]。 char file_name[255]; printf

    3熱度

    4回答

    我想知道爲什麼我不得不使用malloc來動態創建內存,而我已經有了指針可以自由操縱內存。 所以我創造了這個代碼,但是這個代碼腐敗,稱‘被破壞「 有人能解釋爲什麼這代碼失敗,那周圍的變量棧’? #include <stdio.h> int main(void) { int a = 1; int * arr1 = &a; *(arr1 + 1) = 2;