Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何将数组值复制到另一个数组_C_Arrays - Fatal编程技术网

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