Rating:

(13 reviews)
Author: Richard Reese
ISBN : 1449344186
New from $23.56
Format: PDF
Download Free Understanding and Using C Pointers Paperback from mediafire, rapishare, and mirror link
Amazon.com Review
Q&A with Richard Reese, author of "Understanding and Using C Pointers"
Q. Why is your book timely?
A. The C language continues to be a popular and widely used language. In addition, there are millions of lines of C code being maintained. Pointers are central to C and a solid understanding of them is important in crafting reliable and secure software. Understanding C pointers has always been important but they have not always been adequately covered. Their widespread usage in new and old applications begs a complete and comprehensive coverage.
Q. What do you hope that readers of your book will walk away with?
A. I hope that the experienced developer will be able to fill any holes in their understanding of C pointers. I hope that the less experienced developers will become more proficient and confident in their application of pointers.
Q. Can you give us a few tips on using pointers?
Be careful when using pointers to void. If you cast a pointer to a pointer to void there is nothing preventing you from casting it to a different pointer type.When using function pointers the programmer must be careful to ensure it is used properly because C does not check to see if the correct parameters are passed.New code development should use the restrict keyword with most pointer declarations. This will enable better code optimization. Modifying existing code may not be worth the effort.Compilers do not always do a good job at reporting alias-related warnings. They can sometimes miss aliases and may sometimes report alias problems where they don't exist. It is ultimately up to the programmer to identify alias conditions.Remember NULL and NUL are different. NULL is used as a special pointer and is typically defined as ((void*)0). NUL is a char and is defined as '\0'. They should not be used interchangeably.Improperly aligned pointers can result in an abnormal program termination or retrieval of bad data. In addition, slower pointer access is possible if the compiler is required to generate additional machine code to compensate for the improper alignment.About the Author
Richard Reese has worked in the industry and academics for the past 29 years. For 10 years he provided software development support at Lockheed and at one point developed a C based network application. He was a contract instructor providing software training to industry for 5 years. Richard is currently an Associate Professor at Tarleton State University in Stephenville Texas.
Direct download links available for Free Understanding and Using C Pointers
- Paperback: 226 pages
- Publisher: O'Reilly Media (May 15, 2013)
- Language: English
- ISBN-10: 1449344186
- ISBN-13: 978-1449344184
- Product Dimensions: 0.5 x 7 x 8.9 inches
- Shipping Weight: 13.6 ounces (View shipping rates and policies)
Free Understanding and Using C Pointers
This book is a useful overview of what pointers are, how they work, and how they should be managed for security and effectiveness. It is great to have a recent book devoted entirely to pointers. Many books on C either scant the topic, or deal with woefully out of date C standards. Reese takes into account the current C11 standard, which alone makes it very welcome.
The book, however, has several flaws. A lot of the material deals with nonstandard libraries. For example, the section on pointers and threads mentions C11 support for threads, but then discusses the POSIX standard rather than going into any details about the C standard. I found this and other references to extensions outside the C standard annoying; a book about C should focus on portable code.
Also, the book is not well organized. Throughout the book there are "forward references" saying that the topic being mentioned will be discussed elsewhere later. This leads to a lot of back-and-forth flipping of pages. For example, pointer arithmetic is explained in Chapter 1, but is used only in Chapter 4; a particular data structure is minimally introduced on page 133, then actually used sixty pages later. The way information is presented and explained could have been more systematic.
The biggest flaw is that some of the code is nonstandard and frankly, quite ugly. For instance:
(1) a function on page 89 uses pointers to memory that has already been deallocated, which is undefined behavior. The same function has redundant variables "length" and "currentPosition" -- one of the two would have been sufficient to accomplish the task.
(2) Elsewhere, Reese defines a linked list header structure with pointers to the head node, the tail node, and the current node.
Download Link 1 -
Download Link 2