home *** CD-ROM | disk | FTP | other *** search
- From: decvax!mcnc!idis!george (George Rosenberg)
- Subject: dynamic allocation (arrayalloc) update
- Newsgroups: mod.sources
- Approved: john@genrad.UUCP
-
- Mod.sources: Volume 2, Issue 36
- Submitted by: decvax!mcnc!idis!george (George Rosenberg)
-
- I added a call to free in arrayalloc so that memory would not be lost.
-
- I also wrote a header file, "alloc2.h", with some macros to make a better
- interface to the package. Usage should be obvious. Note that in this
- implementation of the macro FREE2D, three of the four arguments are ignored.
- These were included both for uniformity and to allow for other implementations.
- Other implementations may also want to provide for dimensions of type long.
- Use of the macros would simplify this.
-
- George Rosenberg
-
- duke!mcnc!idis!george
- decvax!idis!george
-
-
-
- *** new:arrayalloc.c Wed Aug 14 10:02:48 1985
- --- old:arrayalloc.c Wed Aug 14 09:32:53 1985
- ***************
- *** 49,56
- /*
- * Get memory for intermediate row address vector.
- */
- ! if ((vector = (char **) malloc (imax * sizeof (char *))) == NULL) {
- ! free(array) ;
- return (NULL);
- - }
-
-
- --- 49,55 -----
- /*
- * Get memory for intermediate row address vector.
- */
- ! if ((vector = (char **) malloc (imax * sizeof (char *))) == NULL)
- return (NULL);
-
- /*
-
-
-
-
- ----
- Below is the contents of file "alloc2.h".
- ----
- extern char **arrayalloc() ;
- extern void arrayfree() ;
-
- #define ALLOC2D(type,dim0,dim1) \
- (type**)arrayalloc((unsigned)dim0,(unsigned)dim1,(unsigned)sizeof(type))
- #define FREE2D(type,addr,dim0,dim1) arrayfree((char**)addr)
- ----
-
-