rendered paste body#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct tokn {
int tokentype;
int datatype;
struct tokn * link;
struct tokn * op;
} *TOKEN;
TOKEN inittok(TOKEN tok)
{ TOKEN j = malloc( sizeof *j );
j->tokentype = 3;
j->datatype = 5;
j->link = NULL;
j->op = NULL;
tok->tokentype = 1;
tok->datatype = 2;
tok->link = NULL;
tok->op = j;
return tok;
}
TOKEN copytok(TOKEN orgtok)
{ TOKEN newtok = malloc( sizeof *newtok );
//newtok = orgtok;
newtok->tokentype = orgtok->tokentype;
newtok->datatype = orgtok->datatype;
newtok->link = orgtok->link;
newtok->op = orgtok->op;
return newtok;
}
int main()
{ TOKEN tok = malloc( sizeof *tok );
TOKEN tokb = malloc( sizeof *tokb );
tok->tokentype = 4;
tok->datatype = 6;
tok = inittok(tok);
tokb = copytok(tok);
tokb->tokentype = 34;
tokb->datatype = 556;
// tokb->op->tokentype = NULL;
//tokb->op = NULL; // ERROR - why?
printf("tok %5d %5d %5d %5d %5d\n", tok->tokentype, tok->datatype, tok->link, tok->op->tokentype, tok->op->datatype);
printf("tokb %5d %5d %5d %5d %5d\n", tokb->tokentype, tokb->datatype, tokb->link, tokb->op->tokentype, tokb->op->datatype);
free(tok);
return 0;
}