Πώς να αντιγράψετε πίνακες με το memmove() στον προγραμματισμό C

Pos Na Antigrapsete Pinakes Me To Memmove Ston Programmatismo C



Οι πίνακες είναι ένα βασικό στοιχείο στη γλώσσα προγραμματισμού C, το οποίο επιτρέπει σε έναν προγραμματιστή να αποθηκεύει πολλά στοιχεία του ίδιου τύπου δεδομένων σε μία μόνο μεταβλητή. Υπάρχουν φορές που ένας προγραμματιστής μπορεί να χρειαστεί να αναπαράγει τα περιεχόμενα ενός πίνακα σε έναν άλλο.

Τι είναι η συνάρτηση memmove().

Η λειτουργία βιβλιοθήκης C memmove() χρησιμοποιείται για την αντιγραφή ενός συγκεκριμένου αριθμού byte από μια διεύθυνση μνήμης σε άλλη. Λόγω του γεγονότος ότι δεν επηρεάζεται από επικαλυπτόμενες περιοχές δεδομένων, είναι μια αποτελεσματική και παραγωγική τεχνική αντιγραφής δεδομένων. Οταν χρησιμοποιείτε memmove() για να αντιγράψετε έναν πίνακα, υπάρχουν μερικά πράγματα που πρέπει να έχετε υπόψη σας. Στη συνάρτηση πρέπει πρώτα να δοθούν δύο δείκτες, ο ένας αντιπροσωπεύει τη θέση μνήμης πηγής και ο άλλος τη θέση μνήμης προορισμού. Πρέπει επίσης να καθοριστεί η ποσότητα των byte που θέλετε να αντιγράψετε από την πηγή στον προορισμό.

ο memmove() Η μέθοδος είναι μια ευέλικτη συνάρτηση που μπορεί να χειριστεί επικαλυπτόμενες πηγές και να αντιγράψει δεδομένα με οποιαδήποτε σειρά από οπουδήποτε στη μνήμη. Το μόνο μειονέκτημα είναι ότι διαρκεί λίγο περισσότερο από άλλες μεθόδους αντιγραφής όπως memcpy().







Πώς να αντιγράψετε πίνακες με το memmove() στον προγραμματισμό C

ο memmove() η λειτουργία ορίζεται στο βιβλιοθήκη και έχει τη σύνταξη:



κενός * memmove ( κενός * αρχή , συνθ κενός * src , μέγεθος_t n ) ;

Ο δείκτης κενός* dest καθορίζει τον πίνακα προορισμού, στον οποίο θα αντιγραφούν τα περιεχόμενα του πίνακα προέλευσης. Ο δείκτης στον πίνακα προέλευσης που θέλουμε να αντιγράψουμε είναι const void* src . Ο αριθμός των byte που θέλουμε να αντιγράψουμε από τον πίνακα προέλευσης στον πίνακα προορισμού καθορίζεται από το όρισμα μέγεθος_t n .



Ρίξτε μια ματιά στην ακόλουθη γραμμή κώδικα, για παράδειγμα:





#include

#include

ενθ κύριος ( ) {

ενθ πηγή_συστοιχίας [ ] = { 1 , 2 , 3 , 4 , 5 } ;

ενθ συστοιχία_προορισμού [ 5 ] = { 0 } ;

μέγεθος_t Μέγεθος = μέγεθος του ( πηγή_συστοιχίας ) ;

memmove ( συστοιχία_προορισμού , πηγή_συστοιχίας , Μέγεθος ) ;

Για ( ενθ Εγώ = 0 ; Εγώ < 5 ; Εγώ ++ ) {

printf ( '%d' , συστοιχία_προορισμού [ Εγώ ] ) ;

}

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Ο πίνακας προέλευσης και πίνακας προορισμού ορίζονται πρώτα στον παραπάνω κώδικα. Ο πίνακας προορισμού είναι αρχικά κενός, αλλά ο πίνακας προέλευσης έχει στοιχεία 1 έως 5. Το μέγεθος του() Στη συνέχεια, ο τελεστής χρησιμοποιείται για τον προσδιορισμό του μεγέθους του πίνακα προέλευσης και το αποτέλεσμα αποθηκεύεται στη μεταβλητή μεγέθους. Τα περιεχόμενα του πίνακα προέλευσης αντιγράφονται στον πίνακα προορισμού.

Παραγωγή



συμπέρασμα

Η γλώσσα προγραμματισμού C προσφέρει έναν αποτελεσματικό και αξιόπιστο τρόπο αντιγραφής πινάκων με το memmove() λειτουργία. Η ευελιξία του προέρχεται από την ικανότητά του να χειρίζεται επικαλυπτόμενη μνήμη και λόγω της απλής σύνταξης, κάθε έργο C μπορεί να το χρησιμοποιήσει.