strcpy and memcpy are standard C library functions that have the following characteristics.strcpy provides a copy of the string. That is, strcpy is used only for string copying, and it also copies the end character of the string, not just the string content.
The prototype of the known strcpy function is:
char* strcpy (char* dest, const char* SRC);MEMCPY provides a common memory copy. That is,
During the interview today, the interviewer asked a question about the implementation of the memcpy function prototype. The question was very simple, but I don't know how I was wrong at the time, I am so tired. I feel like this job has been ruined. If something happens, I will miss it if I miss it. in this way, we can record this matter and remind ourselves of it ~
This problem is naturally not difficult for friends who have been familiar with it. The
From: http://blog.codingnow.com/2005/10/vc_memcpy.html
In many compilers, memcpy is an intrinsic function, that is, this function is implemented by the compiler. It is easier to be optimized during compilation than the inline function. The compiler can make multiple versions based on whether the memcpy parameter is a constant or a variable to achieve optimal performance. This cannot be done using inlin
Memcpy
Code:;***; Memcpy. ASM-contains memcpy and memmove routines;; Copyright (c) 1986-1997, Microsoft Corporation. All right reserved.;; Purpose:; Memcpy () copies a source memory buffer to a destination buffer.; Overlapping buffers are not treated specially, so propogation may occur.; Memmove () copies a source me
Prototype: extern void * memcpy (void * DEST, void * SRC, unsigned int count );Usage: # include Function: copy count bytes from the memory area indicated by Src to the memory area indicated by DeST.Note: the memory areas specified by Src and DEST cannot overlap. The function returns a pointer to DeST.Example: # Include See the following code: Void * memcpy (void * DEST, void * SRC, unsigned int count) {
C language memccpy () function: copying content in memoryheader file:
#include
To define a function:
void * memccpy (void *dest, const void * src, int c, size_t N);
Function Description: memccpy () is used to copy src refers to the contents of the memory of the first n bytes to the address referred to Dest. Unlike memcpy (), memccpy () checks for the presence of parameter C at the time of replication, if it returns the next
I think these functions fill () fill_n () strcpy.
1. memcpy ()
Prototype: extern void * memcpy (void * DEST, void * SRC, unsigned int count );
Usage: # include
Function: copy count bytes from the memory area indicated by Src to the memory area indicated by DeST.
Note: the memory areas specified by Src and DEST cannot overlap. The function returns a pointer to DeST.
Note: Compared with strcpy,
memcpy ()//Can be duplicated when memory does not overlapPrototype:void *memcpy ( void *dest, const void *src, size_t count );The first parameter is the target operandThe second parameter is the number of the source operandThe third parameter is the number of replicable650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M00/77/3E/wKioL1ZloDLBNbHmAABxv92XIoU784.png "title=" 1.PNG " alt= "Wkiol1zlodlbnbhm
1 Char*p ="Hello";//5 x Length2 3 intlen = strlen (p) +1 ;4 5 //char *str = (char *) malloc (sizeof (char) *len);6 Charstr[ -] ="Nihaoma";7 //memset (str, 0, Len);8 //strcpy (str, p);9strcat (str, p);//STR must have initializationTen //memcpy (): You need to allocate more space for STR before the system can automatically add One //memcpy (str, p, Len); ALen =strlen (str); -
# Include
# Include
# Include
# Include
// Memcpy: copy by byte
Prototype: extern void * memcpy (void * dest, void * src, unsigned int count)
// Function: copy count bytes from the memory area indicated by src to the memory area indicated by dest;
// Same as strcpy
Void * memcpy_su (void * dest, void * src, unsigned int count)
{
Assert (dest! = NULL) (src! = NULL ));
Char * bdest = (char *) dest;
Cha
(1) prototype void *memcpy (void *dest, const void *SRC, size_t n);
The string copy function, from the memory area src to copy n bytes to dest, must ensure that SRC and dest are areas of memory that are not duplicated.
function returns a pointer to Dest
Eg: #include #include int main (void){Char *a= "abcdef";Char b[20]= "cpy";printf ("The old B is%s.\n", b);memcpy (b,a,5);printf ("The old A is%s.\n", a);pri
Title: Do not use library functions, write void memcpy (void *dst, const void *SRC, size_t count), where DST is the destination address, and SRC is the source address.
Programming points: 1, interface design of the universality 2, consider the memory overlap and do not overlap in two cases of the copy order
void mymemcpy (void *dst, const void *SRC, size_t count) {
assert (DST!= null) (src!= null) (cou NT > 0));
if (src = DST) return
;
co
From Baidu: http://wenku.baidu.com/view/804a4df24693daef5ef73de4.html ###
For more information, see .....
Memmove,MemcpyAndMemccpyIntroduction
Memmove , Memcpy And Memccpy All three functions are memory copies, from one buffer zone to another. Memmove (void * DEST, void * SRC, int count)Memcpy (void * DEST, void * SRC, int count)Memccpy (void * DEST, void * SRC, int CH, int count) Heade
Header files: #include Memmove () is used to replicate memory content, and its prototype is:void * Memmove (void *dest, const void *SRC, size_t num);Memmove () is similar to memcpy () in that it is used to replicate the memory content referred to by src before the Num bytes to the address referred to by dest. The difference is that memmove () is more flexible, and memmove () can still be handled correctly when the memory areas referred to by SRC and d
Function Prototypes:void *memcpy (void *dest,void *src, unsigned int count){ASSERT ((dest!=null) (src!=null));if (DEST==SRC)return SRC;char* d= (char*) dest;char* s= (char*) src;while (count--> 0)*d++=*s++;return dest;}This is a memcpy source code that generates a temporary pointer inside a function that does not change the original pointerParameter description: Dest is the destination string, SRC is the s
Strcpy and memcpy have the following three differences.
The copied content is different. Strcpy can only copy strings, while memcpy can copy any content, such as character arrays, integers, struct, and classes.
The replication method is different. Strcpy does not need to specify the length. It ends with the string Terminator "/0. Memcpy decides the copy Length Ba
Most of these two functions usually use strcpy () but ignore memcpy (). They all copy content from the buffer zone.
Byte A [4]; // Value Type assigned to each byteA [0] = 0;A [1] = 1;A [2] = 0;A [3] = 1;
Byte c1 [4];Memcpy (C1, A, sizeof (byte) * 4 );Byte c2 [4];Strcpy (char *) (byte *) C2, (char *) (byte *) );
Only memcpy () is correct, so compare them wit
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.
A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service