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
Code:
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;
First I tried directly from structure to structure, then put in intermediary work variables
(as shown)
Code:
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;
but still get same error when compiling
"error C2106: '=' : left operand must be lvalue"
Any help appreciated!
Thanks,
Bob