Η συνάρτηση memmove () στο C ++ αντιγράφει συγκεκριμένα byte δεδομένων από την πηγή στον προορισμό.
memmove () πρωτότυπο
void * memmove (void * dest, const void * src, size_t count);
Η memmove()
συνάρτηση περιλαμβάνει τρία ορίσματα: dest, src και count. Όταν memmove()
καλείται η συνάρτηση, αντιγράφει τα byte που υπολογίζονται από τη θέση μνήμης που υποδεικνύεται από το src στη θέση μνήμης που υποδεικνύεται από τον προορισμό.
Η αντιγραφή πραγματοποιείται ακόμη και αν ο δείκτης src και dest αλληλεπικαλύπτεται. Αυτό συμβαίνει επειδή η αντιγραφή πραγματοποιείται σαν να δημιουργείται ένα ενδιάμεσο buffer όπου τα δεδομένα αντιγράφονται πρώτα από το src και στη συνέχεια τελικά αντιγράφονται στο dest.
Ορίζεται στο αρχείο κεφαλίδας "> αρχείο κεφαλίδας.
memmove () Παράμετροι
dest
: Δείκτης στη θέση μνήμης όπου αντιγράφονται τα περιεχόμεναsrc
: Δείκτης στη θέση μνήμης από την οποία αντιγράφονται τα περιεχόμενα.count
: Αριθμός byte για αντιγραφή από src σε dest.
memmove () Επιστροφή τιμής
Η λειτουργία memmove () επιστρέφει dest, ο δείκτης στη θέση μνήμης προορισμού.
Παράδειγμα: Πώς λειτουργεί η λειτουργία memmove ()
#include #include using namespace std; int main() ( int arr(10) = (8,3,11,61,-22,7,-6,2,13,47); int *new_arr = &arr(5); memmove(new_arr,arr,sizeof(int)*5); cout << "After copying" << endl; for (int i=0; i<10; i++) cout << arr(i) << endl; return 0; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Μετά την αντιγραφή 8 3 11 61 -22 8 3 11 61 -22