0
大家好,我遇到了函数返回元素的问题。我需要返回一个双指针指向“双**”。但是我得到了一个double [] []矩阵。C++从矩阵返回双**
下面是代码:
double** createPalette(int r, int g, int b) {
double incR = 1/r, incG = 1/g, incB = 1/b;
double Cp[r * g * b][3];
for (int i = 0; i < r; i++) {
for (int j = 0; j < g; j++) {
for (int k = 0; k < b; k++) {
Cp[i * r + j * g + k][0] = incR * i;
Cp[i * r + j * g + k][1] = incG * j;
Cp[i * r + j * g + k][2] = incB * k;
}
}
}
return Cp; //return &cp... (?)
}
我一直在寻找互联网上,但我只发现了大约简单的指针,没有指针pointers.What应该怎么办? 谢谢大家。
不能你真的避免返回'双**'?退还其他东西要少得多。 (你会[请不要偷酒店房间钥匙](http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope/6445794#6445794)? )。 –
这不能直接工作,因为'double **'和'double [] []'具有不同的内存布局。您将不得不手动分配所需的行。此外,返回一个指向堆栈分配变量的指针是在寻求麻烦! – Nbr44
那么,如果我首先用malloc分配矩阵,我可以返回指针吗? – Bardo91