strdup

    0熱度

    3回答

    當我編譯下面的短片段(在其中我們定義一個字符串,然後使用strdup做一個副本),我得到3個警告:來自GCC的2個編譯器警告和來自valgrind的1個運行時警告/錯誤。 我懷疑內存泄漏錯誤(由valgrind報告)也與我使用strdup有關,這就是爲什麼我在下面包含相關輸出的原因。 我在做什麼錯? (我通過C書工作我的方式,這是的strdup是如何使用的作者。) 代碼: #include <st

    1熱度

    1回答

    我對C非常陌生(多年以後)。我使用lcc64並具有以下聲明 char *logMessage = strdup(argv[1]); 我不知道爲什麼我得到的錯誤 "operands of = have illegal types 'pointer to char' and 'int" 有什麼建議?

    1熱度

    1回答

    我正在做一個小型項目。我正在使用Valgrind工具檢查內存泄漏。當我使用這個工具時,我得到了下面的信息。 > 584 bytes in 74 blocks are definitely lost in loss record 103 of 104 > ==4628== at 0x402BE68: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x

    2熱度

    2回答

    雖然我知道轉換const char *到char *在C/C幾乎禁止++,因爲很多問題,我在一個情況下,我認爲我必須const char *轉換爲char *趕上了。 我使用c_str作爲字符串從文本文件中獲取字符串,我想修改此字符串。但問題是,c_str將字符串轉換爲const char *。那麼在這種情況下使用strdup是個不錯的選擇,還是有更好的主意?

    -1熱度

    3回答

    我有一個關於複製一個0結尾的字符串的問題: const char * str = "Hello World !"; size_t getSize = strlen(str); char * temp = new char[getSize + 1]; ...我知道我可以使用此功能 memcpy(temp, str, getSize); 但我想用我自己的複製功能,有這樣 int Count

    1熱度

    6回答

    我想知道的是爲什麼將字符串轉換爲char *似乎使新char *不等於它來自的文字字符串。 如果我有: //raw versions of the string: string s = "fun"; char* c = "fun"; char* s_convert = strdup(s.c_str()); //converting the string to char* printf(

    1熱度

    1回答

    我試圖用SDL2創建程序。 在代碼的某個部分,我正在編寫函數來抓取給定目錄路徑中所有當前文件的名稱(並將它們保存在內存中),以便在另一個函數中,我可以檢查指定文件是否存在目錄被檢查的最後一刻。 我使用dirent.h適合我的需要,但我遇到了一些問題: 所有文件都通過正確readdir()(無例外)拍攝的,但是它們並不總是正確複製到內存使用後SDL_strdup()(代碼如下)。 我使用SDL_ma

    2熱度

    2回答

    我在寫代碼,它的很大一部分需要返回wchar數組。返回wstrings不是一個真正的選擇(雖然我可以使用它們),我知道我可以傳遞一個指針作爲參數並填充它,但是我特別想要返回一個指向這個寬字符數組的指針。最初的幾次迭代中,我發現我會返回數組,但在處理和打印時,內存將被覆蓋,而我將留下亂碼。爲了解決這個問題,我開始使用wcsdup,它固定了所有的東西,但是我正努力去準確地掌握正在發生的事情,因此,它應

    0熱度

    1回答

    我在VS2013以下編譯錯誤: error C4996: '_strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details. 所以它要求我用同樣的話來代替「_strdup」。 我見過很多錯誤,要

    -1熱度

    5回答

    我已經實現了一個返回字符串的函數。它將一個整數作爲參數(age),並返回一個格式化的字符串。 所有的工作都很好,除了我有一些瘋狂的內存泄漏事實。我知道strdup()是這個原因,但我試圖研究一些修補程序無濟於事。 我的代碼是: const char * returnName(int age) { char string[30]; sprintf(string, "You a