strdup

    2熱度

    2回答

    我試圖釋放g_strdup,但我不知道我做錯了什麼。 使用valgrind --tool=memcheck --leak-check=yes ./a.out我不斷收到: ==4506== 40 bytes in 10 blocks are definitely lost in loss record 2 of 9 ==4506== at 0x4024C1C: malloc (vg_replace

    1熱度

    6回答

    考慮以下代碼: char *strs[] = { "string1", "string2", NULL }; char *ptr1 = NULL, *ptr2 = NULL, *tmp; short iter = 0; tmp = ptr1; while (iter < 2) { tmp = strdup(strs[iter]); tmp = ptr2;

    0熱度

    3回答

    的char * XX(字符* STR) {// CONCAT現有的字符串海峽,並退回到用戶 } 而且我通過調用這個程序: XX (strdup("CHCHCH")); 請問這個導致泄漏而不釋放什麼strdup()生成? 這不可能是免費的XX()的結果將完成這項工作。 (請讓我知道C和C++,謝謝!)

    2熱度

    2回答

    我有這行代碼: strKey &= Strings.StrDup(intKeySize - intLength, chrKeyFill) 這是什麼代碼在C#中的相同呢?我似乎無法找到它。

    2熱度

    3回答

    這個問題是不言自明的。我正在使用C API。

    3熱度

    4回答

    gcc 4.5.1 c89 我試圖釋放一些內存。但是,當我檢查valgrind時,內存還沒有被釋放。我想知道我做錯了什麼。 我有以下結構: typedef struct tag_cand_results { char *candidate_winners[NUMBER_OF_CANDIDATES]; } cand_results; 我創建這個結構的目的: cand_results

    1熱度

    3回答

    如果輸入常量字符串以某種方式被修改(導致C編譯器警告),處理它的最好方法是什麼 - 將其轉換爲新變量,然後使用它或複製它並使用它,然後釋放它。或者還有其他方式來處理這種情況。請建議。任何幫助,將不勝感激。 //鑄字 const char * s1; char * s2 = (char *)s1; //複製和自由 const char * s1; char * s2 = strdup(s1)

    1熱度

    2回答

    我從來沒有用malloc來存儲超過值,但我不得不使用strdup命令輸入文件的行,我沒有辦法讓它工作。 我雖然使用strdup()來獲取指向每行的指針,然後根據使用malloc()保留的行數將每個指針放入一個空間。 我不知道我是否需要像保留內存那樣做一個數組指向指針,我的意思是使用char**,後來把每個指針指向保留空間中的每個strdup。 我雖然是這樣的: char **buffer; ch

    2熱度

    3回答

    我想清楚下面的代碼的所有優點/缺點: { char *str1 = strdup("some string"); char *str2 = "some string"; free(str1); } STR1: 您可以修改的內容字符串 STR2: 您不必使用免費() 更快 任何其他的區別是什麼?

    2熱度

    2回答

    我已經給了一個項目的起始代碼,我必須在我正在參加的課程中完成。代碼在大學計算機上編譯得很好,但是當我嘗試在自己的計算機上編譯代碼時,由於函數調用strdup而出現錯誤。從我可以收集這是由於strdup不是一個ISO c99功能(https://bugzilla.redhat.com/show_bug.cgi?id=130815)。我應該如何去編譯代碼?我想我只需要拋出一些額外的編譯器標誌,但我不確