给你个例子,这个例子是用函数模板来实现的,将一个二维数组作为参数传入函数,然后返回一个指向指针的指针:
#include<iostream>
using namespace std;
/*******************************/
template<typename T,int R,int C>
T **ConvertToPrt(T (&a)[R][C])
{
T **p = (T **)malloc(sizeof(T *)*R);
for(int i=0; i<C; i++)
{
p[i] = a[i];
}
return p;
}
//调用示例如下:
int main()
{
float x[3][3]={{0,5,10},{15,20,25},{30,35,40}};
float **p=ConvertToPrt(x);
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout<<p[i][j]<<endl;
}
}
//释放申请的内存
for(int i=0; i<3; i++)
{
free(&(p+i));
}
free(p);
return 0;
}
[
本帖最后由 303770957 于 2013-10-3 00:40 编辑 ]