⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gridmem.c

📁 这是一个关于最小二乘法相位积分展开的实现程序
💻 C
字号:
/*
 * gridmem.c - dynamic memory management functions
 *             for multigrid phase unwrapping 
 */
#include <stdio.h>
#include <math.h>
#include "gridmem.h"

static int sizes[NUM_TYPES][MAX_ARRAYS];
static int num[NUM_TYPES];
static float *arrays[NUM_TYPES][MAX_ARRAYS];

/* allocate array: if already allocated, return pointer to it */
float *Allocate(int w, int h, ArrayType type)
{
  int size = w*h, i, j, k;
  k = (int) type;
  for (i=0; i<num[k]; i++) {
    if (sizes[k][i]==size) 
      return arrays[k][i];
  }
  sizes[k][num[k]] = size;
  arrays[k][num[k]] = (float *) malloc(size*sizeof(float));
  if (!arrays[k][num[k]]) {
    printf("Error: cannot allocate memory (%d bytes)\n", size*4);
    return 0;  /* error */
  }
  return arrays[k][num[k]++];
}

/* free all allocated arrays */
void FreeAll()
{ 
  int i, j;
  for (j=0; j<NUM_TYPES; j++) {
    for (i=0; i<num[j]; i++) {
      free(arrays[j][i]);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -