2014-11-05 48 views
-1

我想小结构数组中的所有元素复制到更大的结构数组没有从结构上我的代码如下将结构数组复制到另一个更大的结构数组而无需单独访问元素?

这个问题在这里copy smaller array into larger array问前先复制单个元素,但我找不到合适的reply.please帮助我

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? 
    } 
+1

['memcpy'](http://linux.die.net/man/3/memcpy)? – IllusiveBrian 2014-11-05 16:44:19

回答

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

你是不是很远,但在memcpy正确的功能:strcpy副本空终止字符串,memcpy副本任意的内存块:

你可以使用:

memcpy(largevar, var, sizeof(struc st) * 2); 
相关问题