"It'll be all right on the night!"


"D Unleashed" - Errata, Out-takes, Bloopers, and other assorted foulups




Back
Home

Last Updated: 20 August 2008


My thanks to Christopher Claxton for pointing out that this 'Last Updated' information is actually useful, and for suggesting that I add it.

(Jump to change log)

Preface to the 5th edition of these errata

Introduction

The book doesn't actually have an introduction; it doesn't need one, since I've already been introduced to both of the readers. But no book likes to be without an introduction, whether it needs it or not, so I've decided to add one here. Welcome to the Introduction To The Errata.

In any work of this size, mistakes are inevitable. (That's such a common phrase that it's probably a copyright violation.) The best way to handle errors, in my opinion, is not to try to hide them. So I don't. In fact, I wear them on my sleeve, and I point at them a lot, and agonise in public about how many there are. I even stop people in the street and say, "Hey, look at this book! See how huge it is? Okay, now check out the size of this errata list! Isn't that just so terribly sad? But you can help. Well, just a pound would be fine actually..." This doesn't generate much spare cash, but it does buy me a lot of sympathy, which I tend to need in gallon quantities when I'm typing this stuff. (Imagine writing a book yourself. Getting the picture now? Hold that thought...)

So it's just as well that the vast majority of the errors found in the book so far are merely typographical, and very minor. Things like "NULL should be in a monospaced font". Errors, technically, but nothing you'd actually have noticed during normal reading, at least not without a magnifying glass. Things, in fact, that I could easily have left out of this errata list, without anyone being any the wiser. (Honesty is not merely a virtue - it's also a curse.) Still, there are some technical foul-ups, I'm afraid. These technical glitches are the important errors - these are the ones you really do need to know about.

I doubt very much whether all the errors in the book have yet been discovered. If you find an error in the book that is not already documented here, I hope you will be so good as to email me and I'll investigate the error. If I establish that it is indeed an error, I will add that information to this list, and do my best to ensure that the error is corrected in future revisions of the book, should the opportunity arise.

Please don't let the sheer size of this errata list discourage you and lead you to believe that the book is of little value. I firmly believe that this is not the case. Of course, I'd rather that the book had no errors at all. That would be wonderful. But it's a huge book, and so the opportunities to make mistakes are correspondingly huge. Nor is the page size situation helped by my tendency to call a spade a manually operated agricultural excavation implement.

As you will see as you read through the list, quite a few very clever people have studied the book hard, and are being as nit-picking as they possibly can, because that's the kind of people they are - and, to be fair, it's the kind of person I am too. So you can be reasonably sure (once this list has settled down) that, by reading the errata alongside the book, you have access to extremely authoritative information. This is a Good Thing.

Many authors of technical books don't publish errata on the Web. This may be because their books pre-date the Web (which is fair enough), or it may be that they simply can't be bothered. Does this mean that their books are free of errors? By no means! It just means that there's no way of telling what's right and what's wrong. Even the great K&R made mistakes in "The C Programming Language" - and they publish those mistakes on the Web. Quite right too - well done, lads! Of course, they don't make as many mistakes as I do, but that's because Mr Ritchie has the unfair advantage of having actually designed the language, which is definitely cheating. My only consolation is that even the C language has errors, and there's now no way he can fix those errors - he just has to grin convincingly and own up to them (which is exactly what he has done, of course). I've gone for this technique in a big way...

If you use the Errata as a tool to help you gain more understanding about C, just as you use the book for that same purpose, you'll be onto a winning strategy. This is not intended to be merely a guilt list with which you can smack me around the head in comp.lang.c. ;-)

Errors come in various flavours. I've identified three major types of error relevant to this book: typographical, factual, and technical. Most of the errors I've found so far are typographical - font flaws, tabulation trouble, that sort of thing. There are, however, examples of the other kinds too (unfortunately). If an error falls into two or more categories, I've listed it in the first (i.e. most serious) category in the ordered list { technical, factual, typographical }. This is because all technical errors are factual errors, and all factual errors are (kind of) typographical errors. I invented some other categories 'on-the-fly', too, as you'll discover.

It won't always be possible to follow the 'fix' directions without making a complete mess of the book. The fixes basically indicate the corrective action that you would perform if you had complete control over the layout and content of the book. (If you think I'm hinting at someone here, and that it isn't you, the reader, you are correct.)

If there is a 'Reported By' column for a particular chapter, it means that at least one of the errors in that chapter was reported by a gentle reader, or by one of my esteemed co-authors. (Credit where credit is due, and it's cheaper than writing out loads of cheques at $2.56 a time!)

We hope (but, alas, cannot guarantee) that Macmillan will produce reprints with these errors corrected.

So - here endeth the Introduction. Here's a set of jumps to the chapters. I'd just like to take this final opportunity to wish you exactly as much joy reading the errata as I had writing them. But that's only because, underneath my mean, callous exterior, there's a mean, callous interior waiting to be unleashed...



Front Matter


Cover
Contents at a Glance
Contents


Part I - The C Language Revisited


1 C Programmer Unleashed
2 Holy Wars: Programming Standards - Causes and Cures
3 Optimization
4 Dealing with Dates
5 Playing with Bits and Bytes
6 Offline Data Storage and Retrieval [ or External Data Files, acccording to Steve Summit :-) ]
7 When Things Go Wrong: Code Mending
8 Managing Memory
9 Simulations and Controllers
10 Recursion


Part II - Data Organization


11 Simple Abstract Data Structures
12 Binary Search Trees
13 Rapid Sorting Techniques
14 Tries
15 Sparse Matrix
16 Working with Graphs


Part III - Advanced Topics


17 Matrix Arithmetic
18 Digital Signal Processing
19 Expression Parsing and Evaluation
20 Making Software Tools
21 Genetic Algorithms
22 Cross-Platform Development: Communications Programming
23 Writing Common Gateway Interface (CGI) Applications in C
24 Arbitrary Precision Arithmetic
25 Natural Language Processing
26 Encryption
27 Embedded Systems
28 Parallel Processing
29 Looking to the Future: C99
CD-ROM problems








Change log

20 August 2008: Chapter 8, page 271, bufsize bug report added (listings 8.3 and 8.4) - and I moved this change log to the end of the page.

19 December 2007: Updated Jack's support URL again (twice).

6 September 2007: Copied the errata page to the cpax site - I've been meaning to do that for ages, but never quite got round to it before. (I haven't had write access to the old site for donkey's years.) Also, I've cleaned up the HTML a little (added doctypes, basically) and changed everything to *php rather than *html. I have also finally gotten around to fixing up the sparse matrix code so that it will actually compile! (See the CD-ROM section for details.)

17 May 2001: Major format change - now there is one page per chapter, to make the list a little less intimidating. (Not for you - for me!) A few textual changes have been made too.

4 Nov 2000: Minor tweak; updated Jack Klein's support URL

3 Nov 2000: Major update, containing much of the last eight weeks or so of errata reported to me via email, and vast tracts of mindless verbosity (to make your task of reading through these errata just a little slower and more melancholy than might strictly be considered necessary - many thanks to Marvin, whose autobiography was the inspiration for many of these errata, and also of course to Murphy, without whom no errata lis is complete).

My thanks must also go to all those highly observant, zealously pernickety, and utterly picky pedants who keep me honest (most of them hailing from that venerable newsgroup comp.lang.c, of course). By all means send in further crits if you wish, but please check first to ensure that your crit doesn't already appear on the list. Thanks.