2014-11-05 2 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

ответ

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); 
Смежные вопросы