怎么用结构体中的二维指针开辟动态二维数组

结构体如下:
struct Old_W
{
double **old_Wmj;
double **old_Wjp;
};
怎么用这个结构体内的二维指针,开辟二维的动态数组呢?
可不可以写出详细的设置过程?

可以。给你个实例(地址给在参考资料中,我写的):
其中的p和p[i]就是开辟动态二维数组方式演示。不过那里是字符串,这里是double实数,但实质是一样的。注意程序中的方法。
一个程序片段如下:
......
int main()
{
int m,n,i;
int** array;
printf("Input m and n:");
scanf("%d%d",&m,&n);

array = (int** )malloc(m*sizeof(int*)); /*创建m个指针的指针数组并为每个指针开辟空间存储指针值*/
for(i=0;i<m;i++)
{
array[i]=(int* )malloc(n*sizeof(int));/*开辟n个int型数据空间并用一个指针array[i]指向该空间的首地址,这样就创建了一个m行n列的二维数组空间*/
}
......
for(i=0;i<m;i++)
free(array[i]);/*释放每个一级指针*/
free(array)/*释放最开始申请的二级指针*/
return 0;
}

参考资料:http://zhidao.baidu.com/question/104265234.html

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-07-14
用一个一维指针就行了,再加2个表示维数的整型变量即可。因为不管几维的数组,在内存中肯定也是以行为主序排列的,可以看成一维数组。
相似回答