All pastes #631334 Raw Edit

Miscellany

public text v1 · immutable
#631334 ·published 2007-07-23 21:36 UTC
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;
}