Как добавить элементы без перезаписи в struct
В этом коде я пытаюсь позвонить
rrandomчтобы выбрать один случайный идентификатор и имя и поместить его в структуру buff , а второй раз вызвать
rrandomчтобы выбрать новое случайное значение и поместить его также в buff struct , как можно назначить второе значение buff struct, не удаляя первое?
Что я уже пробовал:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define size 4 typedef struct Org { int id[4]; char name[4][7]; }org; struct buff { int bid[4]; char bname[4][7]; }; struct buff buf[2]; void rrandom(org select[size]){ int i,j,r=0; for (i=0; i<1;i++){ r = (rand() % (4 - 0)) + 0; for( j=0;j<4;j++){ buf[i].bid[j]= select[r].id[j] ; strcpy(buf[i].bname[j], select[r].name[j]); printf("------r=%d \n" ,r); }} for ( int i=0; i<2 ;i++){ for(int j=0;j<4;j++){ printf("bname %s bid = %d \n", buf[i].bname[j], buf[i].bid[j]); }} } void main( ) { int i,j; org select[size]; sprintf(select[0].name[0],"1ello1"); sprintf(select[0].name[1],"1ello2"); sprintf(select[0].name[2],"1ello3"); sprintf(select[0].name[3],"1ello4"); sprintf(select[1].name[0],"2ello1"); sprintf(select[1].name[1],"2ello2"); sprintf(select[1].name[2],"2ello3"); sprintf(select[1].name[3],"2ello4"); sprintf(select[2].name[0],"3ello1"); sprintf(select[2].name[1],"3ello2"); sprintf(select[2].name[2],"3ello3"); sprintf(select[2].name[3],"3ello4"); sprintf(select[3].name[0],"4ello1"); sprintf(select[3].name[1],"4ello2"); sprintf(select[3].name[2],"4ello3"); sprintf(select[3].name[3],"4ello4"); sprintf(select[4].name[0],"5ello1"); sprintf(select[4].name[1],"5ello2"); sprintf(select[4].name[2],"5ello3"); sprintf(select[4].name[3],"5ello4"); printf(" Initial id :\n"); for(i=0;i<4 ;i++) { for(j=0;j< 4;j++) { select[i].id[j]= j; }} rrandom(select); rrandom(select); for ( int i=0; i<2 ;i++){ for(int j=0;j<4;j++){ printf("from main bname %s bid = %d ", buf[i].bname[j], buf[i].bid[j]); } printf("\n\n"); } }