我想将小结构数组的所有元素复制到更大的结构数组,而不从我的代码在下面的结构中复制单个元素
此问题在copy smaller array into larger array之前提出,但我找不到合适的回复。请帮助我
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?
}
答案 0 :(得分:1)
你不是很远,但memcpy
中的正确函数:strcpy
复制空终止字符串,memcpy
复制任意内存块:
您可以使用:
memcpy(largevar, var, sizeof(struc st) * 2);
答案 1 :(得分:0)
你应该使用如下所示的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 %s\n",largevar[i].i,largevar[i].ch);
return 0;
}