#include <stdio.h>
#include <string.h>
#include <stdint.h>
typedef unsigned int uint32_t ;
typedef unsigned short uint16_t ;
typedef unsigned char uint8_t ;
/*万能打印 HEX*/
void G_print(void* A,uint8_t len)
{
for(uint8_t i=0;i<len;i++)
printf("%02X ",*( (unsigned char*)A+i ) );
printf("\n");
}
uint8_t arr[5] = {1,2,3,4,5};
int main(void)
{
G_print(arr,5);
memcpy(&arr[1],&arr[2],3);
G_print(arr,5);
return 1;
}
从数组del一个成员!
变化1:
变化2
变化3:
参考:https://www.cnblogs.com/lyl-312/p/5514988.html
memcpy 和 memmove的差别:
上面代码测试的是第二种,一样的,我们换一下
uint8_t arr[5] = {1,2,3,4,5};
int main(void)
{
G_print(arr,5);
memmove(&arr[2],&arr[1],3);
G_print(arr,5);
return 1;
}
//01 02 03 04 05
//01 02 02 03 04
摆弄一下:
看看源码把!