/Proj4/vector1.c

http://github.com/route-me/route-me · C · 33 lines · 30 code · 2 blank · 1 comment · 5 complexity · d4e2f574e50947cd389b8f6a7bab88c6 MD5 · raw file

  1. /* make storage for one and two dimensional matricies */
  2. #ifndef lint
  3. static const char SCCSID[]="@(#)vector1.c 4.4 94/03/22 GIE REL";
  4. #endif
  5. #include <stdlib.h>
  6. #include "projects.h"
  7. void * /* one dimension array */
  8. vector1(int nvals, int size) { return((void *)pj_malloc(size * nvals)); }
  9. void /* free 2D array */
  10. freev2(void **v, int nrows) {
  11. if (v) {
  12. for (v += nrows; nrows > 0; --nrows)
  13. pj_dalloc(*--v);
  14. pj_dalloc(v);
  15. }
  16. }
  17. void ** /* two dimension array */
  18. vector2(int nrows, int ncols, int size) {
  19. void **s;
  20. s = (void **)pj_malloc(sizeof(void *) * nrows);
  21. if (s) {
  22. int rsize, i;
  23. rsize = size * ncols;
  24. for (i = 0; i < nrows; ++i)
  25. if (!(s[i] = pj_malloc(rsize))) {
  26. freev2(s, i);
  27. return (void **)0;
  28. }
  29. }
  30. return s;
  31. }