memmove

    0熱度

    3回答

    下面的代碼是否包含內存泄漏。我懷疑它確實存在,但我用來檢測它們的工具(Visual Studio + Parasoft C++測試)沒有標記任何東西。如果是我如何解決它? //A dynamically allocated array of char pointers int numOfStrings = 10, numOfChars = 32; char** data = new char*

    0熱度

    2回答

    我有下面的代碼,其中我試圖創建一個長度爲7個字節的緩衝區,然後在網絡字節順序中將一個整數與char數組一起放入緩衝區,我不應該在我的sprintf()緩衝區末尾有空字符,所以我使用memcpy()來複制7個字節。但是,我似乎在memcpy()後得到了不同的緩衝區。 代碼: int num = 1234; char *dummy = "bla"; int dummy_len = strlen(d

    2熱度

    1回答

    memcpy和memmove函數有什麼重要區別嗎? 什麼時候應該使用memcpy,什麼時候應該使用memmove?

    10熱度

    1回答

    從Linux聯機幫助頁memmove(3) 的的memmove()函數拷貝n個字節從存儲器區域的src到存儲器區域DEST。 存儲區可能重疊:複製發生,就好像src中的字節是 首先被複制到與src或dest不重疊的臨時數組中,然後 字節從臨時數組複製到dest。 不是分配一個臨時數組複製值的兩倍,我們可能只是做到以下幾點: void *my_memmove(void *dest, const vo

    5熱度

    2回答

    我在wikibooks.org上查看公有領域的實現。它實現了memmove(),下面明確指出它「不完全可移植」!我想知道,爲什麼: 括號放在代碼的第一行,並 代碼不是完全可移植。 的代碼如下: void *(memmove)(void *s1, const void *s2, size_t n) { char *p1 = s1; const char *p2 = s2;

    0熱度

    1回答

    我想了解memmove如何工作。我正在以這種方式在內存中存儲數據。 Start at 0 First Memory Block(A) of size 10 Hence A->(0,10) where 0 being where it starts and 10 it's length. Thus B-> (10,20) C-> (30,50) D-> (80,10)

    0熱度

    5回答

    在我的算法類中,我們必須打開算法來移除整數列表的重複項,並儘可能降低複雜度。在我的算法中,當我看到一個重複的整數時,我將該整數後面的每個元素向下移動一個索引,以便使用for循環刪除重複的元素;像這樣: for(int i=dup_index; i<arr_size-1; i++) { arr[i] = arr[i+1]; } 我的算法使用memmove會更有效嗎?此外,如果我的工

    0熱度

    4回答

    #include <cstdlib> #include <cstring> #include <string> using std::string; string *arr_ptr; int capacity; void add() { int old_capacity = capacity; capacity <<= 1; // double th

    1熱度

    1回答

    我在C中有一個memmove問題。據我所知,兩個位置都是有效的內存地址,我能夠在執行之前打印兩個內存位置的內容memmove,但是當我試圖移除時,該函數就會與SIGSEGV一起崩潰。 這裏是有問題的代碼: std::cout << page[0] << "\n"; std::cout <<page[1] << "\n" ; std::cout << cache[index][cache_itr

    1熱度

    1回答

    C++中的std::copy函數將一個迭代器指向的元素複製到另一個迭代器指向的元素上。在C++中std::copy的一個重要方面是,如果迭代元素的類型是C++ speak中的TriviallyCopyable(在Rust中實現Copy特徵的話),那麼優化實現將使用std::memmove進行優化。 Rust標準庫中是否有與C++ std::copy相同或類似的東西?