home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / lang / c / 16368 < prev    next >
Encoding:
Text File  |  1992-11-11  |  1.2 KB  |  48 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!portal!dfuller
  3. From: dfuller@portal.hq.videocart.com (Dave Fuller)
  4. Subject: Re: void pointer to a struct?
  5. Message-ID: <BxKrEy.7sK@portal.hq.videocart.com>
  6. Organization: VideOcart Inc.
  7. X-Newsreader: Tin 1.1 PL3
  8. References: <1992Nov10.220944.1810@news.ysu.edu>
  9. Date: Wed, 11 Nov 1992 23:18:33 GMT
  10. Lines: 36
  11.  
  12. ae007@yfn.ysu.edu (Daniel Newcombe) writes:
  13. : Hi, I have a struct te { int i; char c}
  14. : In the main part of the program I have the variable r declared
  15. : as type te.  I also have j as type char.  I then have
  16. : void *o   in there.  At first I have o point to j and do
  17. : a printf("%c",*(char *)o) and this works.  How would I use
  18. : o to point to r, and be able to print the c field?
  19. : Thanks...
  20. :  -Dan
  21.  
  22. ---------------------
  23.  
  24. If r is type te then
  25. printf("%c", r.c);
  26. works rather well.
  27.  
  28. ---------------------
  29.  
  30. if you want to pass r around then use the pointer to it elsewhere do
  31.  
  32. o = (void *) &r;
  33.  
  34. to print out the char element c do
  35.  
  36. printf("%c", ((struct te*)o)->c);
  37.  
  38. ---------------------
  39. pretty messy, huh ?
  40.  
  41. this could be done MUCH cleaner using another method. But using the types
  42. and methods that you defined, this works for it.
  43.  
  44. Dave Fuller
  45. dfuller@portal.hq.videocart.com
  46.  
  47.