📄 dxdxa_mfc.cpp
字号:
// DXDXA_MFC.cpp:
// Implementation of the DXDXA_MFC Module.
// That is Data Structure & API of Dynamic X Dimension X Array.
//
// Created 2001/08, By DongMing, MDSR.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DXDXA_MFC.h"
//////////////////////////////////////////////////////////////////////
// API functions
//////////////////////////////////////////////////////////////////////
// 函数名称:d2dda_New
// 函数功能:为二维-动态-double-数组申请空间
// 函数性质:API
// 输入参数:
// nDim1,维数 1
// nDim2,维数 2
// 输出参数:
// 无
// 返回值:
// 成功时候返回一个DYNA_2DIM_DOUBLE_ARRAY指针;失败返回NULL
// 备注:返回的DYNA_2DIM_DOUBLE_ARRAY类型的变量 d2dda,可以如访问普通数组
// 一样来访问,d2dda[Index1][Index2]
DYNA_2DIM_DOUBLE_ARRAY d2dda_New(int nDim1, int nDim2)
{
DYNA_2DIM_DOUBLE_ARRAY Result;
int i;
Result = new PDOUBLE[nDim1];
if (Result == NULL) return NULL;
memset(Result, 0, sizeof(PDOUBLE) * nDim1);
for (i = 0; i < nDim1; i++)
{
Result[i] = new double[nDim2];
if (Result[i] == NULL)
{
d2dda_Free(Result, nDim1, nDim2);
return NULL;
}
}
return Result;
}
//////////////////////////////////////////////////////////////////////
// 函数名称:d2dda_Free
// 函数功能:为二维-动态-double-数组释放空间
// 函数性质:API
// 输入参数:
// d2dda,数组指针
// nDim1,维数 1
// nDim2,维数 2
// 输出参数:
// 无
// 返回值:
// 无
// 备注:与d2dda_New搭配使用
void d2dda_Free(DYNA_2DIM_DOUBLE_ARRAY d2dda, int nDim1, int nDim2)
{
int i;
if (d2dda == NULL) return;
for (i = 0; i < nDim1; i++)
{
if (d2dda[i] != NULL) delete[] d2dda[i];
}
delete[] d2dda;
}
DYNA_3DIM_DOUBLE_ARRAY d3dda_New(int nDim1, int nDim2, int nDim3)
{
DYNA_3DIM_DOUBLE_ARRAY Result;
int i;
Result = new DYNA_2DIM_DOUBLE_ARRAY[nDim1];
if (Result == NULL) return NULL;
memset(Result, 0, sizeof(DYNA_2DIM_DOUBLE_ARRAY) * nDim1);
for (i = 0; i < nDim1; i++)
{
Result[i] = d2dda_New(nDim2, nDim3);
if (Result[i] == NULL)
{
d3dda_Free(Result, nDim1, nDim2, nDim3);
return NULL;
}
}
return Result;
}
void d3dda_Free(DYNA_3DIM_DOUBLE_ARRAY d3dda, int nDim1, int nDim2, int nDim3)
{
int i;
if (d3dda == NULL) return;
for (i = 0; i < nDim1; i++)
{
if (d3dda[i] != NULL) d2dda_Free(d3dda[i], nDim2, nDim3);
}
delete[] d3dda;
}
//////////////////////////////////////////////////////////////////////
// 函数名称:d2dna_New
// 函数功能:为二维-动态-int-数组申请空间
// 函数性质:API
// 输入参数:
// nDim1,维数 1
// nDim2,维数 2
// 输出参数:
// 无
// 返回值:
// 成功时候返回一个DYNA_2DIM_INT_ARRAY指针;失败返回NULL
// 备注:返回的DYNA_2DIM_INT_ARRAY类型的变量 d2dna,可以如访问普通数组
// 一样来访问,d2dna[Index1][Index2]
DYNA_2DIM_INT_ARRAY d2dna_New(int nDim1, int nDim2)
{
DYNA_2DIM_INT_ARRAY Result;
int i;
Result = new PINT[nDim1];
if (Result == NULL) return NULL;
memset(Result, 0, sizeof(PINT) * nDim1);
for (i = 0; i < nDim1; i++)
{
Result[i] = new int[nDim2];
if (Result[i] == NULL)
{
d2dna_Free(Result, nDim1, nDim2);
return NULL;
}
}
return Result;
}
//////////////////////////////////////////////////////////////////////
// 函数名称:d2dna_Free
// 函数功能:为二维-动态-int-数组释放空间
// 函数性质:API
// 输入参数:
// d2dna,数组指针
// nDim1,维数 1
// nDim2,维数 2
// 输出参数:
// 无
// 返回值:
// 无
// 备注:与d2dna_New搭配使用
void d2dna_Free(DYNA_2DIM_INT_ARRAY d2dna, int nDim1, int nDim2)
{
int i;
if (d2dna == NULL) return;
for (i = 0; i < nDim1; i++)
{
if (d2dna[i] != NULL) delete[] d2dna[i];
}
delete[] d2dna;
}
DYNA_3DIM_INT_ARRAY d3dna_New(int nDim1, int nDim2, int nDim3)
{
DYNA_3DIM_INT_ARRAY Result;
int i;
Result = new DYNA_2DIM_INT_ARRAY[nDim1];
if (Result == NULL) return NULL;
memset(Result, 0, sizeof(DYNA_2DIM_INT_ARRAY) * nDim1);
for (i = 0; i < nDim1; i++)
{
Result[i] = d2dna_New(nDim2, nDim3);
if (Result[i] == NULL)
{
d3dna_Free(Result, nDim1, nDim2, nDim3);
return NULL;
}
}
return Result;
}
void d3dna_Free(DYNA_3DIM_INT_ARRAY d3dna, int nDim1, int nDim2, int nDim3)
{
int i;
if (d3dna == NULL) return;
for (i = 0; i < nDim1; i++)
{
if (d3dna[i] != NULL) d2dna_Free(d3dna[i], nDim2, nDim3);
}
delete[] d3dna;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -