View Full Version : [C] - memcpy e memmove, differenze
ilgrigio
26-04-2006, 18:28
secondo la documentazione le funzioni memcpy e memmove sono diverse, ma in pratica nei casi che ho provato danno lo stesso risultato. sono state rese uguali o ci sono casi in cui i risultati sono diversi?
grazie
secondo la documentazione le funzioni memcpy e memmove sono diverse, ma in pratica nei casi che ho provato danno lo stesso risultato. sono state rese uguali o ci sono casi in cui i risultati sono diversi?Riporto qui di seguito parte delle pagine di "man" su Linux.
The memcpy() function copies n bytes from memory area src to memory area dest. The memory areas may not overlap. Use memmove(3) if the memory areas do overlap.
The memmove() function copies n bytes from memory area src to memory area dest. The memory areas may overlap.
La differenza mi sembra evidente, è una questione di sovrapposizione delle aree.
ilgrigio
26-04-2006, 23:00
giusto. questo è quanto dicono le documentazioni ma poi usando la memcpy anche se c'è overlap da lo stesso risultato di memmove.
AnonimoVeneziano
26-04-2006, 23:12
Il problema è che mentre con memcpy() il comportamento in quel caso non è prevedibile con memmove() in quel caso c'è un comportamento ben determinato.
In sintesi memcpy() potrebbe funzionare ora, ma in un altra occasione potrebbe procurare un altro risultato :)
Ciao
ilgrigio
27-04-2006, 01:09
in realtà il mio scopo è proprio di trovare almeno una di queste occasioni che da risultati inaspettati.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.