Part D - Data Structures

Structure Walkthroughs

Outline a walkthrough technique for programs that include structure types

Walking through a program that includes objects of structure type requires a slight modification to the original walkthrough table.  The table for programs without objects was initially described in the chapters on Walkthroughs and Functions

This chapter presents the augmented technique for walking through programs that include objects of structure type.

Augmented Technique

The following program contains several objects of type A.  The walkthrough table is shown below.

 ``` // Structure Types - Walkthrough // struct_walk.c #include struct A { int x; double r; }; void foo(struct A* c); struct A goo(struct A d); int main(void) { struct A a = {4, 6.67}, b; foo(&a); printf("00%d.%.3lf.111\n", a.x, a.r);  b = goo(a); printf("00%d.%.3lf.112\n", a.x, a.r); printf("%d.%.3lf.113\n", b.x, b.r); } void foo(struct A* c) { int i; i = c->x; c->x = c->r; c->r = c->x % i + 202.134; } struct A goo(struct A d) { struct A e; d.x = d.r - 62; e = d; return e; }```

The table includes:

• the return type for each function
• the name of each function
• the structure type of each object
• the name of each object
• the type of each member
• the name of each member

Note the breakdown of each object into its members in the head of the table.  We reserve a separate line for the addresses that are pointed to:

 int void struct A main() foo() goo() struct A struct A struct A* struct A struct A a b c d e 1000 100C 1018 101C 1020 102C int double int double int int double int double x r x r i x r x r 1000 1000 1000 1000 1000

Output:

Exercises

 Designed by Chris Szalwinski Copying From This Site  