c语言 把一个数组拷贝到另一个数组,用memcpy实现
时间: 2023-09-21 17:08:22 浏览: 1045
可以使用C语言的标准库函数`memcpy`来实现将一个数组拷贝到另一个数组。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
int a[5] = {1, 2, 3, 4, 5};
int b[5];
memcpy(b, a, sizeof(a));
printf("数组a的元素为:");
for(int i=0; i<5; i++){
printf("%d ", a[i]);
}
printf("\n数组b的元素为:");
for(int i=0; i<5; i++){
printf("%d ", b[i]);
}
return 0;
}
```
这个程序使用`memcpy`函数将数组a中的元素拷贝到数组b中,拷贝的长度是`sizeof(a)`,也就是数组a的总字节数。运行程序后,输出结果会显示数组a和数组b中的元素都相同。需要注意的是,如果数组a和数组b的长度不同,可能会导致内存访问越界的问题,因此在使用`memcpy`函数的时候需要谨慎。
相关问题
C语言将一个数组数据拷贝到另一个数组。库函数 数组拷贝函数用法
在C语言中,如果你需要将一个数组的数据完全复制到另一个数组,可以使用循环遍历的方式手动完成,也可以直接使用标准库提供的函数如`memcpy()`。`memcpy()`函数是一个通用的内存复制函数,适用于各种类型的内存块。
例如,假设你有两个整型数组`src`和`dst`,它们有相同的元素个数,你可以这样做:
```c
#include <string.h>
void copy_array(int src[], int dst[], size_t num_elements) {
memcpy(dst, src, sizeof(int) * num_elements);
}
int main() {
int src[] = {1, 2, 3, 4, 5};
int dst[num_elements_of(src)];
// 先计算src数组的元素个数
size_t num_elements = sizeof(src) / sizeof(src[0]);
copy_array(src, dst, num_elements);
// 现在dst数组的内容与src相同
// dst: 1, 2, 3, 4, 5
return 0;
}
c语言字符数组拷贝
C语言中字符数组的拷贝可以使用strcpy()函数或者memcpy()函数实现。
使用strcpy()函数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello world!";
char str2[20];
strcpy(str2, str1);
printf("str1: %s\n", str1);
printf("str2: %s\n", str2);
return 0;
}
```
使用memcpy()函数:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello world!";
char str2[20];
memcpy(str2, str1, strlen(str1)+1);
printf("str1: %s\n", str1);
printf("str2: %s\n", str2);
return 0;
}
```
两种方法都可以实现字符数组的拷贝,其中strcpy()函数更为常用。注意,在使用strcpy()函数时,要保证目标字符数组的大小足够容纳源字符数组的内容,否则会发生内存溢出的错误。
阅读全文