realloc

    0熱度

    1回答

    我建立一個函數,將在我寫的函數的工作文字刪除一個字, 但是從某些原因,存儲更多的則是我後,我分配等等完成它打印沒有字,但符號和胡言亂語的新字符串。 請幫我理解爲什麼以及如何修復它,謝謝。 時,我很快就調試內存的變化,因爲我用這個: newStr[k] = str[i]; char * newText(char * word, char *str) { int count = 0, in

    -5熱度

    3回答

    我有一個動態的二維數組,大小是高度*寬度。 我想通過使用realloc更改數組大小。 這是我的代碼,但它不工作。 我該怎麼辦?幫我!! int main(){ char **img; img = (char**)malloc(sizeof(char*)*height); for(i=0;i<height;i++){ img[i] = (char*)

    1熱度

    1回答

    我使用下面的代碼列出目錄中的文件,然後將它們放入一個名爲filename_list的長字符串中。該邏輯是 使用的strdup(「」)的環路 之前分配一個零字符,空終止字符*使用的realloc()來做到這一點,其保留增加其大小在每個迭代現有的內容。我通過將舊的長度添加到文件名的長度來計算新緩衝區的時間。 我使用strcat()將文件名附加到緩衝區。 它工作正常,直到它試圖調用realloc()爲導

    0熱度

    1回答

    我的代碼工作正常,直到我嘗試釋放分配的內存。我malloc編輯files指針,後來我用realloc來增加大小。但是當我嘗試釋放內存時,它給了我無效的指針錯誤,不知道爲什麼。 char *files = malloc(1); char *temp = strdup(argv[i]); strcat(temp, "/"); strcat(temp, dp->d_name); DIR *chi

    0熱度

    1回答

    我想添加一個c字符串的擴展名,但我只是得到信號:SIGABRT(中止),誰能告訴我這是什麼原因?這是我到目前爲止已經完成,錯誤出現@ realloc的函數「prepareFileName」: #include <stdio.h> #include <string.h> #include <stdlib.h> #define OUT_OF_MEMORY 3 #define FILE_EX

    -1熱度

    1回答

    我試圖將結構複製到結構數組中。 我有一個具有頂點的動態分配的數組稱爲 vlist 和一個整數存儲在所述VLIST頂點的數量的字段的圖結構。 頂點有一個名稱數組作爲它們的內部字段。 函數我得到一個錯誤,需要一個圖形和一個字符串,並將一個頂點添加到該圖形中,該字符串作爲頂點的名稱。 下面是函數: int add_vertex(Graph *graph, const char name[]){

    1熱度

    2回答

    我使用realloc替換malloc時出錯。 下面的這段代碼在我的電腦上運行正常。 int vector_grow(Vector* vec) { unsigned long newcap; int * newarr; if (0 == vec->cap) { vec->arr = (int*)malloc(START_CAPACITY * sizeof(*

    1熱度

    1回答

    我正在嘗試編寫這個簡單的代碼,它將用戶輸入消息保存在堆棧中,然後再顯示給他。 我不想限制用戶輸入的字符數,所以每次用戶輸入新字符時都使用動態內存分配。 如果用戶輸入小號碼,代碼運行良好。的字符,但它不起作用,如果用戶鍵入一個很大的號碼。的字符 例如:如果我輸入「艾哈邁德」它會顯示給我,但如果我輸入更多字符的東西它不。 這是我的代碼: #include <stdio.h> #include <st

    2熱度

    3回答

    我有一個應該接收輸入的程序,請記住最長的字符串並在EOF上打印出來。我的代碼有效,但是當通過調試器運行時,會檢測到內存泄漏。我在Windows中編譯,沒有像Valgrind這樣的適當的調試器,所以我沒有得到關於錯誤的很多信息。我能想象的唯一可能導致這種泄漏的是realloc()或free()函數。但是,我不夠熟練地瞭解問題所在。 #include <stdio.h> #include <stdl

    0熱度

    1回答

    很抱歉,如果這個問題是基本的,但我真的不明白爲什麼,如果我不添加「+ 1」節目不打印所有的字母 a = realloc(a,sizeof(char)*(i + 1)); 以及在這裏 *(A + I)= letra; 「a」的位置在每次通過時是否變大? 我認爲情況並非如此,但我不太確定。 #include <stdio.h> #include <stdlib.h> char *copiarFr