C语言复制内存的函数 c语言调用内存
编写一个C语言的内存拷贝函数,把源地址的指定长度的数据拷贝到目标地址,考虑8,16,32位数据位宽
函数原型为:
创新互联公司主要从事成都做网站、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务淄川,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
void *memcpy(
void *dest,
const void *src,
size_t count
);
其中:
dest:
目标内存缓冲区
src:
源内存缓冲区
count:
需要拷贝的字节数
通过memcpy()函数无法确定目标缓冲区的大小,目标缓冲区一般是一个已分配好空间的指针,在分配该空间时一般要先考虑源内存缓冲区的大小,宁愿多分配些空间(即,一般都要分配得比源缓冲区大),第三个参数为源缓冲区中实际需要拷贝的数据的字节数.
C语言 实现一个内存复制函数,可以将指定内存地址复制指定的长度到另一个内存地址。求简单容易看懂的
memcpy
语法:
#include string.h
void *memcpy( void *to, const void *from, size_t count );
功能:函数从from中复制count 个字符到to中,并返回to指针。 如果to 和 from 重叠,则函数行为不确定。
memmove
语法:
#include string.h
void *memmove( void *to, const void *from, size_t count );
功能: 与mencpy相同,不同的是当to 和 from 重叠,函数正常仍能工作。
C语言中memcpy函数用法
memset函数用来对一段内存空间全部设置为某个字符,常用于内存空间初始化。将已开辟内存空间
s
的首
n
个字节的值设为值
c
。
下面是一个例子
#include
stdio.h
#include
string.h
main(){
char
*s="golden
global
view";
clrscr();
memset(s,'g',6);
printf("%s",s);
getchar();
return
0;
}
c语言memcpy函数原型:extern
void
*memcpy(void
*dest,
void
*src,
unsigned
int
count);
用法:#include
string.h
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
举例:
//
memcpy.c
#include
syslib.h
#include
string.h
main()
{
char
*s="golden
global
view";
char
d[20];
clrscr();
memcpy(d,s,strlen(s));
d[strlen(s)]=0;
printf("%s",d);
getchar();
return
0;
}
函数
strchr()
功
能:
在一个串中查找给定字符的第一个匹配之处\
用
法:
char
*strchr(char
*str,
char
c);
程序例:
#include
#include
int
main(void)
{
char
string[15];
char
*ptr,
c
=
'r';
strcpy(string,
"this
is
a
string");
ptr
=
strchr(string,
c);
if
(ptr)
printf("the
character
%c
is
at
position:
%d\n",
c,
ptr-string);
else
printf("the
character
was
not
found\n");
return
0;
}
C语言串拷贝(strcpy)和内存拷贝(memcpy)函数有什么不同?
strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目录字符串中,当遇到字符串末尾的null字符(\0)时,它会删去该字符,并结束拷贝。 memcpy()函数可以拷贝任意类型的数据。因为并不是所有的数据都以null字符结束,所以你要为memcpy()函数指定要拷贝的字节数。 在拷贝字符串时,通常都使用strcpy()函数;在拷贝其它数据(例如结构)时,通常都使用memcpy()函数。以下是一个使用strcpy()函数和memcpy()函数的例子: #include stdio. h #include string. h typedef struct cust-str {int id ;char last_name [20] ; char first_name[l5];} CUSTREC;void main (void); void main (void){char * src_string = "This is the source string" ; char dest_string[50]; CUSTREC src_cust; CUSTREC dest_cust; printf("Hello! I'm going to copy src_string into dest_string!\n"); / * Copy src_ string into dest-string. Notice that the destination string is the first argument. Notice also that the strcpy() function returns a pointer to the destination string. * / printf("Done! dest_string is: %s\n" , strcpy(dest_string, src_string)) ; printf("Encore! Let's copy one CUSTREC to another. \n") ; prinft("I'll copy src_cust into dest_cust. \n"); / * First, intialize the src_cust data members. * / src_cust. id = 1 ; strcpy(src_cust. last_name, "Strahan"); strcpy(src_cust. first_name, "Troy"); / * Now, Use the memcpy() function to copy the src-cust structure to the dest_cust structure. Notice that, just as with strcpy(), the destination comes first. * / memcpy(dest_cust, src_cust, sizeof(CUSTREC));
网站标题:C语言复制内存的函数 c语言调用内存
网站路径:http://scyanting.com/article/dososoj.html