我想将小型结构数组的所有元素复制到大型结构数组中,而不从我的代码低于的结构中复制单个元素
这个问题是在这里问的,以前把较小的数组复制到较大的数组中,但我找不到合适的答案。请帮助我
struct st
{
int i;
char ch[10];
};
int main()
{
struct st var[2]={1,"hello",2"bye"};
struct st largevar[3];
strcpy(largevar,var);// this is bad i guss but is there any way to copy without individual element access?
}
您没有走多远,但memcpy
中的正确函数:strcpy
复制空终止字符串,memcpy
复制任意内存块:
您可以使用:
memcpy(largevar, var, sizeof(struc st) * 2);
您应该使用如下所示的memcpy(),而不是strcpy(。
#include<stdio.h>
#include<string.h>
struct st
{
int i;
char ch[10];
};
int main()
{
int i =0;
struct st var[2]={{1,"hello"},{2,"bye"}};
struct st largevar[3];
memcpy(largevar,var,sizeof(struct st) * 2);
for(i=0;i<2;i++)
printf("%d %sn",largevar[i].i,largevar[i].ch);
return 0;
}