目录
memcpy()函数
void *memcpy(void *dest, const void *src, size_t n);
功能:拷贝src所指的内存内容的前n个字节到dest所值的内存地址上。
参数:
dest:目的内存首地址
src:源内存首地址,注意:dest和src所指的内存空间不可重叠
n:需要拷贝的字节数
返回值:dest的首地址
示例:
#include <stdio.h>
int main()
{
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int b[15];
int i = 0;
memcpy(b, a, sizeof(a)); //将数组a拷贝到数组b中,长度为sizeof(a)
for (i = 0; i < 10; i++) //遍历打印出数组b
{
printf("%d, ", b[i]);
}
printf("\n");
getchar();
}
memset()
void *memset(void *s, int c, size_t n);
功能:将s的内存区域的前n个字节以参数c填入
参数:
s:需要操作内存s的首地址
c:填充的字符,c虽然参数为int,但必须是unsigned char , 范围为0~255
n:指定需要设置的大小
返回值:s的首地址
示例:
#include <stdio.h>
int main()
{
int a[10];
memset(a, 0, sizeof(a)); //初始化
memset(a, 97, sizeof(a)); //数组中 a对应ASCII码为97 A为65
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%c\n", a[i]); //将数组以字符串打印输出
}
getchar();
}
malloc()
void *malloc(size_t size);
功能:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。分配的内存空间内容不确定,一般使用memset初始化。
参数: size:需要分配内存大小(单位:字节)
成功:分配空间的起始地址
失败:NULL
free()
void free(void *ptr);
功能:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,指向被释放区域的首地址。对同一内存空间多次释放会出错。
参数:
ptr:需要释放空间的首地址,被释放区应是由malloc函数所分配的区域。
返回值:无