📄 arraymalloc.h
字号:
////ArrayMalloc.h//多维数组的动态开辟和删除。
#include <malloc.h>
//////C////
//1D
float* MallocFloat1( int n)
{float * p;
p=(float*)malloc(n*sizeof(float));
return p;
}
void FreeFloat1(float *p)
{
free(p);
return;
}
///2D 一次性开辟所有空间
float ** MallocFloat2(int Rows,int Cols)
{
int i;
float **p;
p=(float**)malloc(Rows*sizeof(float*));
for(i=0;i<Rows;i++)
{
p[i]=(float*)malloc(Cols*sizeof(float));
}
return p;
}
void FreeFloat2(float**p,int Rows,int Cols)
{ int i;
for(i=0;i<Rows;i++)
{
free( p[i]);
}
free(p);
return;
}
//2D 一次性开辟所有的行,每一行对应的列动态分配
//这样可以重新动态分配二维数组的大小。
float **MallocFloat2Row(int Rows)
{
float **p;
p=(float**)malloc(Rows*sizeof(float*));
return p;
}
void MallocFloat2Col(float ** p,int Rows,int Cols)
{
int i;
for(i=0;i<Rows;i++)
{
p[i]=(float*)malloc(Cols*sizeof(float));
}
return;
}
void MallocFloat2RowIndex(float **p,int RowsIndex,int Cols)
{
p[RowsIndex]=(float*)malloc(Cols*sizeof(float));
return;
}
float ** MallocFloat2Whole(int Rows,int Cols,int TotalRows)
{//动态分配二维数组大小时,一般是 1,先把行数分配的足够大,2,列数大小以后改变
int i;
float **p;
p=(float**)malloc(TotalRows*sizeof(float*));
for(i=0;i<Rows;i++)
{
p[i]=(float*)malloc(Cols*sizeof(float));
}
return p;
}
///////
void reMallocFloat1(float *p,int n)
{
p=(float*)realloc(p,n*sizeof(float));
return;
}
void reMallocFloat2Col(float **p,int Rows,int Cols)
{///重新动态分配二维数组的列。行数必须和原来数组的函数相同
//只有列数可以重新分配大小。
//如果行数重新分配。在释放内存是出错,不知道什么原因
int i;
//p=(float**)realloc(p,Rows*sizeof(float*));
for(i=0;i<Rows;i++)
{
p[i]=(float*)realloc(p[i],Cols*sizeof(float));
}
}
////C++////还不够完善
/*
void MallocFloat1( float * p,int n)
{
p=new float[n];
return;
}
void FreeFloat1(float *p)
{
delete [] p;
return;
}
void MallocFloat2(float **p,int Rows,int Cols)
{
int i;
p=new float*[Rows];
for(i=0;i<Rows;i++)
{
p[i]=new float*[Cols];
}
return;
}
void FreeFloat2(float**p,int Rows,int Cols)
{ int i;
for(i=0;i<Rows;i++)
{
delete[] p[i];
}
delete p;
return;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -