C语言中内存函数有哪些
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了C语言中内存函数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。内存函数1.复制 memcpy,memmovev
千家信息网最后更新 2026年11月02日C语言中内存函数有哪些
这篇文章主要介绍了C语言中内存函数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
内存函数
1.复制 memcpy,memmove
void * memcpy ( void * destination, const void * source, size_t num );
dest复制src中num个字节的数据。
模拟实现memcpy
void * my_memcpy ( void * dst, const void * src, size_t count){ void * ret = dst; while (count--) { *(char *)dst = *(char *)src; dst = (char *)dst + 1; src = (char *)src + 1; } return(ret);}·如果dst 和src指向同一个数组会发生什么?
int main(){ int arr1[10] = { 1,2,3,4,5,6,7,8,9,0 }; // 预期结果 1 2 1 2 3 4 7 8 9 0 my_memcpy(arr1+2, arr1, 16); for (int i = 0; i < 10; i++) { printf("%d ", arr1[i]); }}实际为 1 2 1 2 1 2 7 8 9 0
因为到5 6 的时候3 4被改成了1 2 ,5 6也就被改成1 2。
也就是说被复制的元素在复制前被改变了,导致复制结果失败。
如果是这样指向同一个数组呢?
int main(){ int arr1[10] = { 1,2,3,4,5,6,7,8,9,0 }; my_memcpy(arr1, arr1+2, 16); for (int i = 0; i < 10; i++) { printf("%d ", arr1[i]); }}复制结果没有问题。
对于这种情况,c语言有一个更强大的函数memmove.
void * memmove( void * destination, const void * source, size_t num );
与memcpy的功能一样,但是memmove可以指向同一块空间。
模拟实现memmove
**void* my_memmove(void* dest, void* src, size_t num){ char* ret = dest; //如果指向同一块空间 判断地址大小,避免数据在被复制前被改变 if ( (char*)dest-(char*)src< 0){ while (num) { *((char*)dest)++ = *((char*)src)++; num--; } } else { while(num--){ *((char*)dest+num) = *((char*)src+num); } } return ret;}2.比较 memcmp
int memcmp ( const void * ptr1, const void * ptr2, size_t num );
从ptr1和ptr2的位置开始比较num个字节,当两个字节数据不同时就会返回。
ptr1>ptr2 返回值>0;
ptr1=ptr2 返回值=0;
ptr1
感谢你能够认真阅读完这篇文章,希望小编分享的"C语言中内存函数有哪些"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
函数
指向
篇文章
内存
语言
字节
数据
结果
同时
数组
空间
强大
两个
也就是
也就是说
价值
位置
元素
兴趣
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网是不是新科技
金诺互联网科技
有马互联网科技
为想互联网科技
杭州互联网科技公司
壹账通互联网科技
天津摩尔互联网科技
无线互联网科技
互联网前沿科技
科技伦理 互联网公司
湖南诚度互联网科技有限公司
湖南一路畅行互联网科技
互联网科技大奖都有哪些公司
互联网科技如何创业
银行科技岗属于互联网吗
黑云互联网科技有限公司
新氧科技和美国互联网有关系吗
中国科技和美国互联网
同城互联网络科技
绵阳真晨互联网科技有限公司
朗涯互联网科技
科技大学互联网专业好不好
须眉科技是互联网公司吗
崇明区互联网教育科技售后服务
互联网科技扶贫时间
中国科技创新与世界互联网大会
燊美集互联网科技有限公司
上海科技产业互联网平台
互联网金融科技元年
银行科技岗属于互联网吗