C语言内存分配详解11


c      初始化内容

count 初始化的字节数   

返回值:

返回指向buffer的指针

  memset把buffer所指内存区域的前count个字节设置成某个字符的ASCLL值.一般用于给

数组,字符串等类型赋值.

main()

{

int *p=NULL;

int i;

char *q=NULL;

p=(int *)malloc(sizeof(int)*10);

if(p==NULL)

exit(1);

memset(p,0,sizeof(int)*10);

q=p;

printf("%d",*(q++));

free(p);

   执行结果是10个0.

四、memcpy

名称:

memcpy

功能:

拷贝内存空间

头文件:

函数原形:

void *memcpy(void *dest,void *src,unsigned int count);

参数:

dest 目标内存区

src    原内存区

count 要复制的字节数

返回值:

指向dest的指针

  memcpy会把src所指内存区复制count个字节到dest所指内存区.如果count比src

字节数大,strcpy会拷贝'\0'后结束.要注意dest和src不要重叠.

  memcpy只是拷贝内存空间,不处理空间重叠的

main()

{

int *p1=NULL;

int *p2=NULL;

  int q;

int i;

p1=malloc(sizeof(int)*10);

if(p1==NULL)

exit(1);

p2=malloc(sizeof(int)*5);

if(p2==NULL)

exit(1);

memset(p1,0,sizeof(int)*10);

memcpy(p2,p1,sizeof(int)*5);

q=p2;

printf("%d",*(q++));

free(p1);

free(p2);

)

  运行结果为5个0.

五、memmove

名称:

memmove

功能:

拷贝(移动)内存空间

头文件:

函数原形:

void *memmove(void *dest,void *src,unsigned int count);

参数:

dest 目标内存区

src    原内存区

count 要复制的字节数

返回值:

指向dest的指针

  Memmove和函数memcpy函数功能一样,但只是拷贝内存空间,不处理空间重叠的问

题.Memmove会处理空间重叠.当dest和src重叠时,仍能正确处理,但src内容发

生改变.

六、memcmp

名称:

memcmp

功能:

比较两个内存空间的字符

头文件:

函数原形:

int memcmp(void *buf1,void *buf2,unsigned int count);

参数:

buf1 内存区

buf2    内存区

count 要比较的字符数

返回值:

见下面

  Memcmp会比较内存区域buf1和buf2的前count个字节.Memcmp回根据ASCLL码表

0.

main()

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《C语言内存分配详解11
本文地址:https://www.zhiletu.com/archives-655.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微