I am trying to copy data between two structures, i.e. from record read in to record to be written out.
This is in Microsoft C (ver6).
I have them declared like this
First I tried directly from structure to structure, then put in intermediary work variablesCode:struct GLD0DATA { char GlSt ; /* 0 */ char Filler1 [20]; /* 1 */ char GlAcCC [2]; /* 21 */ char GlAcCX [1]; /* 23 */ <snip> char GlMatDt [6]; /* 442 */ char GlFill5 [1416]; /* 448 */ char GlDrac [7]; /* 1864 */ char GlCrac [7]; /* 1871 */ char GlFill6 [170]; /* 1878 fill out till end */ }; /* 2048 */ struct ICRSEX1A { char ICAcCC [2]; char ICAcCX [1]; char ICAcMM [2]; char ICAcno [6]; char ICAcSS [2]; char ICCrInt [9]; char ICDrInt [9]; char ICMatDt [6]; }; char WKAcCC [2]; char WKAcCX [1]; char WKAcMM [2]; char WKAcno [6]; char WKAcSS [2]; char WKCrInt [9]; char WKDrInt [9]; char WKMatDt [6]; int IN_BUF_LEN; int OUT_BUF_LEN; struct GLD0DATA REC_BUF, *pi; /* initially I did not use pointers */ struct ICRSEX1A OUT_BUF, *po; /* with pointers still get same error */ char IN_POS_BLK[128]; char OUT_POS_BLK[128]; char IN_KEY_BUF[2]; char OUT_KEY_BUF[2]; char FIL_NAME[60]= ""; char OUT_NAME[60]=""; main () { pi = &REC_BUF; po = &OUT_BUF;
(as shown)
but still get same error when compilingCode:if (strncmp(str1," ",5) != 0) { WKAcCC = pi->GlAcCC; WKAcCX = pi->GlAcCX; WKAcMM = pi->GlAcMM; WKAcno = pi->GlAcno; WKAcSS = pi->GlAcSS; WKCrInt = pi->GlCrInt; WKDrInt = pi->GlDrInt; WKMatDt = pi->GlMatDt; po->ICAcCC = WKAcCC; po->ICAcCX = WKAcCX; po->ICAcMM = WKAcMM; po->ICAcno = WKAcno; po->ICAcSS = WKAcSS; po->ICCrInt = WKCrInt; po->ICDrInt = WKDrInt; po->ICMatDt = WKMatDt;
"error C2106: '=' : left operand must be lvalue"
Any help appreciated!
Thanks,
Bob



LinkBack URL
About LinkBacks


