GRASS Programmer's Manual  6.5.svn(2014)-r66266
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
linkm.c
Go to the documentation of this file.
1 
2 /*
3  ** Written by David Gerdes US Army Construction Engineering Research Lab
4  ** April 1992
5  ** Copyright 1992 USA-CERL All rights reserved.
6  **
7  */
8 
9 /*
10  ** takes 1st command line argument and stuffs each letter of it into
11  ** a linked list. then prints it back out to stdout.
12  ** If a second argument is specified, the first argument is put in the
13  ** list backwards.
14  */
15 #include <stdio.h>
16 #include <grass/linkm.h>
17 
18 struct link
19 {
20  char let;
21  struct link *next;
22 };
23 
24 int main(int argc, char *argv[])
25 {
26  register int i;
27  VOID_T *head;
28  struct link List, *tmp, *p;
29  int rev = 0;
30 
31 
32  /*
33  List.next = NULL;
34  List.let = ' ';
35  */
36 
37 
38  head = (VOID_T *) link_init(sizeof(struct link));
39 
40 
41  for (i = 0; i < 2000000; i++) {
42  /*
43  p = (struct link *) malloc (sizeof (struct link));
44  free (p);
45  */
46  p = (struct link *)link_new(head);
47  link_destroy(head, p);
48  }
49 
50  link_cleanup(head);
51 
52  exit(0);
53 }
#define VOID_T
Definition: qtree.h:17
struct link_head * link_init(int size)
Definition: linkm/init.c:40
struct link_head * link_new(struct link_head *Head)
Definition: new.c:12
void link_cleanup(struct link_head *Head)
Definition: linkm/init.c:64
int main(int argc, char *argv[])
Definition: gem/main.c:302
void link_destroy(struct link_head *Head, VOID_T *ptr)
Definition: destroy.c:10