Sams Teach Yourself C in 21 Days

(singke) #1
164: cur_ptr = first;
165: while (cur_ptr != NULL )
166: {
167: printf(“ %X “, cur_ptr );
168: printf(“ %2i %c”, counter++, cur_ptr->ch);
169: printf(“ %X \n”,cur_ptr->next_rec);
170: cur_ptr = cur_ptr->next_rec;
171: }
172: }
173:
174: /*========================================================*
175: * Function: free_memory_list
176: * Purpose : Frees up all the memory collected for list
177: *========================================================*/
178:
179: void free_memory_list(LISTPTR first)
180: {
181: LISTPTR cur_ptr, next_rec;
182: cur_ptr = first; /* Start at beginning */
183:
184: while (cur_ptr != NULL) /* Go while not end of list */
185: {
186: next_rec = cur_ptr->next_rec; /* Get address of next record */
187: free(cur_ptr); /* Free current record */
188: cur_ptr = next_rec; /* Adjust current record*/
189: }
190: }

Enter character 1,
Must be a to z: q

Enter character 2,
Must be a to z: b

Enter character 3,
Must be a to z: z

Enter character 4,
Must be a to z: c

Enter character 5,
Must be a to z: a

Rec addr Position Data Next Rec addr
======== ======== ==== =============
2224A0 1 a 222470
222470 2 b 222490

430 Day 15

LISTING15.13 continued

INPUT/
OUTPUT

25 448201x-CH15 8/13/02 11:13 AM Page 430

Free download pdf