怎么返回多维数组

来源:百度知道 编辑:UC知道 时间:2024/05/18 12:00:04
怎么让函数返回一个二维数组,能不能举个例子
double **DPBag()//正包的导数
{
{

....

}
return deri;

}
deri是一个数组,为什么有这样的错误呢
error C2440: 'return' : cannot convert from 'double [3][4]' to 'double ** '
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

//在堆中开辟一个3×4×5的3维int数组
#include <stdio.h>
#include <malloc.h>
int ***p;
int i,j,k;
void main() {
p=(int ***)malloc(3*sizeof(int **));
if (NULL==p) return;
for (i=0;i<3;i++) {
p[i]=(int **)malloc(4*sizeof(int *));
if (NULL==p[i]) return;
for (j=0;j<4;j++) {
p[i][j]=(int *)malloc(5*sizeof(int));
if (NULL==p[i][j]) return;
}
}
for (i=0;i<3;i++) {
for (j=0;j<4;j++) {
for (k=0;k<5;k++) {
p[i][j][k]=i*20+j*5+k;
}
}
}
for (i=0;i<3;i++) {
for (j=0;j<4;j++) {
for (k=0;k<5;k++) {
printf(" %2d",p[i][j][k]);
}
printf("\n");
}
printf("---------------\n");