C 如何将数组值复制到另一个数组
我有两个阵列:C 如何将数组值复制到另一个数组,c,arrays,C,Arrays,我有两个阵列: char roundNames1[16][25], roundNames2[16 / 2][25]; 然后我想将结果从第一个数组复制到第二个数组。我试过这个: 其中roundNames1[5]=“hello” 为什么它不工作?您需要交换strcpy函数的参数 strcpy( roundNames2[8], roundNames1[5] ); 下面是C标准中的函数描述的一部分 7.23.2.3 strcpy功能 概要 一, #包括 char*strcpy(char*restri
char roundNames1[16][25], roundNames2[16 / 2][25];
然后我想将结果从第一个数组复制到第二个数组。我试过这个:
其中roundNames1[5]=“hello”
为什么它不工作?您需要交换strcpy函数的参数
strcpy( roundNames2[8], roundNames1[5] );
下面是C标准中的函数描述的一部分
7.23.2.3 strcpy功能
概要
一,
#包括
char*strcpy(char*restrict s1,const char*restrict s2);
描述
2 strcpy函数复制s2指向的字符串(包括
s1指向的数组中的终止空字符)。如果
复制发生在重叠的对象之间,其行为是
未定义
strcpy
-参数的另一种方式
使用memcpy
void*memcpy(void*目的地,void*来源,大小)
memcpy
函数从源内存位置复制一定数量的字节,并将其写入目标位置
例子:
#包括
#包括
#包括
void main()
{
字符a[]=“堆栈溢出”;
int s=尺寸f(a);
int c=s/sizeof(a[0]);
char*p=malloc(s);
memcpy(p&a,s);
printf(“%s\n”,p);
自由基(p);
}
输出
是的,我注意到了这一点,但我也用
roundNames2[5]
做了一个测试,但它不起作用,strcpy()
的参数应该颠倒@Lundin这不是真的哦,很抱歉,您没有颠倒strcpy参数的顺序,只是将索引更改为数组范围内的某个值。strcpy反向错误确实仍然存在。删除之前的评论。@Lundin哈哈,不用担心!
First array: hello
Second array:
strcpy( roundNames2[8], roundNames1[5] );
#include <string.h>
char *strcpy(char * restrict s1, const char * restrict s2);
$ ./a.out
stackoverflow