home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / lang / c / 16186 < prev    next >
Encoding:
Internet Message Format  |  1992-11-09  |  1.8 KB

  1. Path: sparky!uunet!munnari.oz.au!goanna!ok
  2. From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: Write a structure?
  5. Message-ID: <15863@goanna.cs.rmit.oz.au>
  6. Date: 9 Nov 92 04:22:47 GMT
  7. References: <1c0umfINNell@sgi2.mathstat.uoguelph.ca> <15597@goanna.cs.rmit.oz.au> <531@ulogic.UUCP>
  8. Organization: Comp Sci, RMIT, Melbourne, Australia
  9. Lines: 28
  10.  
  11. In article <531@ulogic.UUCP>, hartman@ulogic.UUCP (Richard M. Hartman) writes:
  12. > The problem is not that you cannot write pointer, but that it
  13. > does you no good.
  14.  
  15. There are two problems.  One is that it doesn't do you any good to write
  16. pointers (people keep telling me that it _is_ useful but nobody has sent
  17. me as much as one line of code from a working program that does it). 
  18. The other is that the compiler has enough information to _tell_ that it
  19. won't do you any good, but because of the cast to void* is required to
  20. forget that, shut up, and do it anyway.
  21.  
  22. > It is usually good form to write a routine that writes a structure
  23. > that "knows" which fields are actually pointers that need to
  24. > be dereferenced:
  25.  
  26. Agreed.  I even provided the students in question with sample code to do
  27. this.  It helped that I had used Sun's XDR.  But that approach only works
  28. when the data structure being written is a tree.  If you have N records
  29. pointing to the same dynamically allocated string, you get N copies of the
  30. string when you read them back.
  31.  
  32. > When you point out to a beginner what the problem is, and explain 
  33. > something like what I have outlined here the problem goes away.  
  34. > That what "beginners" are there for, to learn about the nasty stuff.
  35.  
  36. Gosh, you must deal with some wonderful beginners.  Tell them about a
  37. mistake and they never make it again.  Re-read Donald Knuth's remark on
  38. his bug-log for TeX.
  39.