C++自学22:复制内存(memcpy)/设置内存(memset)
原创
©著作权归作者所有:来自51CTO博客作者文天大人的原创作品,请联系作者获取转载授权,否则将追究法律责任
一:memcpy函数,复制内存
注意是memcpy,不是memccpy
int a[5]{11,22,33};
int* b = new int[5];
// 从内存a处开始,复制20个字节,到指针b处
memcpy(b,a,20);
for (int i = 0; i < sizeof(a)/4;i++) {
std::cout << b[i] << std::endl;
}
二:memset函数,设置内存
int a[5]{11,22,33,44,55};
for (int i = 0; i < 5; i++) {
std::cout << a[i] << std::endl;
}
std::cout << "--------------" << std::endl;
// 从内存a处开始,把每个字节的值都变成0,连续变20个
// 此处千万要注意,每个字节指的是1个字节,而不是4个字节,虽然a是个int数组
// 这个地方是个坑点
memset(a,0,20);
for (int i:a) {
std::cout << i << std::endl;
// std::cout<<std::hex<<i<<std::endl
}
该函数多数都用来清0或者置成-1