C ++的新手 使用数组作为参数从函数返回数组。 我正在使用openGL,并使用2D数组构建颜色表。 我想调用一个从现有2d数组返回2d数组的函数。 这段代码可以编译,但是我想要void buildArray(float color [4] [3])返回一个数组float color256 [256] [3] = {}; 我知道我可能有数组初始化错误。 换一种说法。我知道有多种初始化数组(指针)的方法 我明显地编写了比C ++更多的C语言。
#include <stdio.h>
#include <iostream>
using namespace std;
void buildArray(float color[4][3]){
float color256[256][3] = {};
int n;
float sr,sg,sb,er,eg,eb,ir,ig,ib;
sr = color[0][0];sg = color[0][1];sb = color[0][2];
er = color[1][0];eg = color[1][1];eb = color[1][2];
ir = (er-sr)/8;ig = (eg-sg)/8; ib = (eb-sb)/8;
cout<<"increments "<<ir<<" "<<ig<<" "<<ib<<endl;
color256[0][0] = color [0][0];
color256[0][1] = color[0][1];
color256[0][2] = color[0][2];
cout<<"start "<<color256[0][0]<<" "<<color256[0][1]<<" "<<color256[0][2]<<endl;
for (n = 0; n < 8; n ++){
color256[n+1][0] = color256[n][0] + ir;
color256[n+1][1] = color256[n][1] + ig;
color256[n+1][2] = color256[n][2] + ib;
cout << color256[n][0]<<" "<<color256[n][1]<<" "<<color256[n][2]<<endl;
}
for (n =0;n < 8 ; n++){
cout << color256[n][0]<<" "<<color256[n][1]<<" "<<color256[n][2]<<endl;
}
}
void arrayStart(){
float color[4][3]= {
{ 0.0 , 0.1686 , 0.2117 },
{ 0.0274 , 0.2117 , 0.2588},
{ 0.3450 , 0.4313 , 0.4588},
{ 0.3960 , 0.4823, 0.5137}
};
// float c256 = color buildArray(color);
buildArray(color);
// for (int i =0 ;i < 8 ; i++)
// cout << c256[i][0];
}
int main(int argc, char **argv)
{
arrayStart();
return 0;
}