内存操作函数
#define CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main0101()
{
//堆空间重置:memset()重置内存空间的值;memset依靠二进制进行初始化,如int为4个字节,memset把每个字节都赋值
//0000 0000 0000 0000:0 1111 1111 1111 1111:-1
int*p=(int*)malloc(sizeof(int)*10);
//只能重置0或-1
memset(p,0,sizeof(int)*10);
memset(p,-1,sizeof(int)*10);
for(int i=0;i<10;i++)
{
printf("%d\n",p[i]);
}
free(p);
return EXIT_SUCCESS;
}
int main0102(void)
{
//memcpy()内存拷贝:拷贝的内容和字节有关
int arr[]={1,2,3,4,5,6,7,8,9,10};
int*p=(int*)malloc(sizeof(int)*10);
memcpy(p,arr,sizeof(int)*10);
for(i=0;i<10;i++)
{
printf("%d\n",p[i]);
}
free(p);
//strcpy()字符串拷贝:遇\0停止
char ch[]="hello\0 world";
char str[100];
strcpy(str,ch);
printf("%s\n",str);
//如果拷贝的源和目标发生重叠,可能会报错
int arr[]={1,2,3,4,5,6,7,8,9,10};
memcpy(&arr[5],&arr[3],20);
for(int i=0;i<10;i++)
{
printf("%d ",arr[i]);//1 2 3 4 5 4 5 6 7 8
}
//memmove()功能用法和memcpy一样,区别在于:dest和src所指的内存空间重叠时,mommove仍然能处理,但是执行效率比memcpy低
int arr[]={1,2,3,4,5,6,7,8,9,10};
memcpy(&arr[5],&arr[3],20);
for(int i=0;i<10;i++);
{
printf("%d ",arr[i]);
}
return 0;
}
int main(void)
{
//strcmp()只比较\0之前的内容
//momcmp():比较输入的字节里的内容
//比较字符数组
//int arr1[]={1,2,3,4,5,6,7,8,9,10};
//int arr2[]={1,2,3,4,5,6};
//比较字符串
char arr1[] = "hello\0 warld";
char arr1[] = "hello\0 world";
int value=memcmp(arr1,arr2,13);
printf("%d\n",value);
return 0;
}