c-在没有单独元素访问的情况下,将结构数组复制到另一个较大的结构数组



我想将小型结构数组的所有元素复制到大型结构数组中,而不从我的代码低于的结构中复制单个元素

这个问题是在这里问的,以前把较小的数组复制到较大的数组中,但我找不到合适的答案。请帮助我

  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;
      }

最新更新