#include <stdio.h>
#include <stdlib.h>
#define FALSE -1
/*动态分配二维数组,即row*column的矩阵 */
int MatrixDynAllot(int row, int column, double **pArray )
{
int ncount, i, j;
void **ptdhead;
void **ptdBody;
ptdhead = (void **)malloc(sizeof(void*)*row + sizeof(double)*row*column);
if(!ptdhead)
{
return FALSE;
}
ptdBody = ptdhead + row;
for(ncount = 0; ncount < row; ncount++)
ptdhead[ncount] = ptdBody + ncount * column * sizeof(double)/sizeof(void*);
pArray = (double **)ptdhead;
ptdhead = NULL;
for(i = 0; i < row; i++ )
{
for(j = 0; j< column; j++)
{
pArray[i][j] = 0;
}
}
return 0;
}
int main()
{
int i, j;
int row, column;
double **pArray;
row = 5;
column = 8;
MatrixDynAllot( row, column, pArray);
for( i = 0; i<row; i++)
{
for( j= 0; j<column; j++ )
{
printf("\n%f",pArray[i][i]);
}
}
}
请问应如何修改呢(建立一个 通用的、独立的 二维数组动态分配子函数,不采用全局变量)? 谢谢大家哈!