Once we've covered the fundamentals of programming on a C course, we move on to cover pointers, arrays, structures, strings, input/output, and dynamic memory allocation. We teach and illustrate each of them, and we have our delegates write practical exercises to make sure that they have a grasp of the concepts, and are aware of the common pitfalls.
But a language like C is really all about the COMBINATION of all the factors, and long after the course would normally have concluded yesterday evening, I wrote a "pull it all together" example in front of the group - reading an unknown number of records from a file (so we had to use the dynamic memory stuff), and forming each of the records into s structure in that dynamic memory. We then called functions to analyse and extract the information from the structures and report it back to the user of the program. Full source code
[here].
The example ... (not really a surprise) ... will lead us nicely into object orientation, and C++, which I'll be tackling with the same group and others from 9 O'Clock this morning; OO can be a really tricky concept to see in practical examples early in learning as it's a system / technique that's really good for larger projects, but examples such as the one I'm using this week ease it naturally in!
To learn about our C and C++ course range, see
[here].
(written 2011-08-11)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
C212 - C and C based languages - Memory Management [1497] Training Season Starts again! - (2008-01-07)
[1581] What is an lvalue? (Perl, C) - (2008-03-18)
[1589] Dynamic Memory Allocation in C - calloc, realloc - (2008-03-22)
[1670] Dynamic Memory Allocation in C - (2008-06-09)
[1845] Passing a table from Lua into C - (2008-10-18)
[2669] Efficient use of dynamic memory - C and realloc - (2010-03-10)
[2848] C course - final course example puts it all together - (2010-07-02)
[3118] Arrays of arrays - or 2D arrays. How to program tables. - (2011-01-02)
[3144] Setting up arrays in C - fixed size at compile time, or dynamic - (2011-01-24)
[3416] Storing Tcl source code encoded, and running via your own C program - (2011-09-02)
[4128] Allocating memory dynamically in a static language like C - (2013-06-30)
[4340] Simple C structs - building up to full, dynamic example - (2014-12-03)
[4634] Regression testing - via a very short C testing framework - (2016-01-29)
[4635] Encapsulating logic in functions and structs - the C approach to Object Oriented techniques - (2016-01-30)
C210 - C and C based languages - File Handling [2002] New C Examples - pointers, realloc, structs and more - (2009-01-20)
[2571] Reading and writing files in C - (2010-01-12)
[2572] The what and why of C pointers - (2010-01-13)
[3122] When is a program complete? - (2011-01-06)
[4339] Command line and file handling in C - (2014-12-03)
C209 - C and C based languages - Structures and Unions [1478] Some new C programming examples - files, structs, unions etc - (2007-12-19)
[1572] C - structs and unions, C++ classes and polymorphism - (2008-03-13)
[1584] Using Structs and Unions together effectively in C - (2008-03-21)
[1669] What are Unions (C programming) - (2008-06-08)
[2573] C Structs - what, how and why - (2010-01-13)
[3145] Structures v Structure Pointers in C. How, which, why. - (2011-01-25)
C207 - C and C based languages - Pointers and references [1155] Pointers in C - (2007-04-19)
[2005] Variables and pointers and references - C and C++ - (2009-01-23)
[2670] Pointers to Pointers to Pointers - what is the point? - (2010-03-10)
[3004] Increment operators for counting - Perl, PHP, C and others - (2010-10-18)
[3121] New year, new C Course - (2011-01-05)
[3238] Bradshaw, Ben and Bill. And some C and C++ pointers and references too. - (2011-04-09)
[3242] How to return 2 values from a function (C++ and C) - more uses of pointers - (2011-04-10)
[3399] From fish, loaves and apples to money, plastic cards and BACS (Perl references explained) - (2011-08-20)
[4560] Variables, Pointers and References - C and C++ - (2015-10-29)
Some other Articles
Printing objects in C++Plenty to do in MelkshamTemplates in C++ - defining a family pattern of methods / functionsEating out in Melksham - where we like for lunch.Adding the pieces together to make a complete language - CDo university courses teach the right things for life at work later on?Loops - a comparison of goto, while and forAre people who walk into Melksham being asked to subsidise parking?What is the picture?Report - day trip from Swindon / Chippenham / Melksham to Weymouth