Изберете да използвате memcpy_s, strcpy_s или изберете strcpy, memcpy?

Choose Use Memcpy_s



Редактор: Ли Гуошуай

Qq: 9611153 WeChat lgs9611153



Час: 2012-11-2



Основна причина:

За да отговорите на този въпрос, вие отговаряте: Изберете да нямате аномалия в момента, да скриете опасността и след това да я атакувате или веднага да получите аномалия?



Ако срещнете програма, която виси, ще установите, че препълването на паметта е изключително опасно. И колкото по-голяма е програмата, толкова по-вероятно ще бъдат тези подробности и толкова по-лесно ще бъдат изложени скритите проблеми.

разликата:

Функцията Memcpy_s, strcpy_s изрично указва размера на целевата памет, може ясно да изложи проблема с препълването на паметта, а обикновените strcpy, memcpy няма.

За да се уверите, че копието в паметта има достатъчно място за предотвратяване на служебни грешки, опитайте да използвате memcpy_s вместо memcpy.



Необходими ресурси:

U

пример:

Следващият пример тества няколко свързани функции

Прикрепете

Вижте дефинициите на memcpy и memcpy_s, както следва:

memcpy (_Dst, _Src, _SrcSize)

_CRT_INSECURE_DEPRECATE_MEMORY (memcpy_s)нищожен*__cdeclmemcpy (_Out_opt_bytecapcount _ (_ Размер)нищожен* _Dst, _In_opt_bytecount _ (_ Размер)конст нищожен* _Src, _In_ size_t _Size)

memcpy_s (_Dst, _Size *размер на(_DstType), _Src, _SrcSize)

_CRTIMP errno_t__cdeclmemcpy_s (_Out_opt_bytecap_post_bytecount _ (_ DstSize, _MaxCount)нищожен* _Dst, _In_ rsize_t _DstSize, _In_opt_bytecount _ (_ MaxCount)конст нищожен* _Src, _In_ rsize_t _MaxCount)

да обобщим:

Най-сериозният проблем е най-сериозният и най-обезпокоителен. Напишете програмата първо, за да бъдете в безопасност, не спестявайте проблеми и бъдете слепи и уверени.