この問題があります。関数を実行する前に、float 配列の配列を格納する必要があります。非定数なしで配列を初期化できないため、どうすればそれを達成できますか? その配列を malloc で作成し、次に戻ってポインターに代入する関数を作成する必要がありますか?
typedef struct
{
float RGBA[4];
} graphColors;
grapColors の配列が必要です。私は Java プログラマーであり、今 C で作業する必要があります。
編集:
graphColors *initializeGraphColors(){
graphColors *gp;
int i;
float HI = 1.0f;
float LO = 0.0f;
float temp[] = {1.0f, 1.0f, 1.0f, 0.0f};
gp = (graphColors *) malloc(nrOfLines * sizeof(graphColors));
for(i = 0;i < nrOfLines; i++){
gp[i].RGBA[0] = LO + (float)rand()/((float)RAND_MAX/(HI-LO));
gp[i].RGBA[1] = LO + (float)rand()/((float)RAND_MAX/(HI-LO));
gp[i].RGBA[2] = LO + (float)rand()/((float)RAND_MAX/(HI-LO));
gp[i].RGBA[3] = 0.0f;
}
return gp;
}
次に、私のクラスで:
graphColors *gc;
gc = initializeGraphColors();
このエラーの取得:
error C2040: 'gc' : 'graphColors *' differs in levels of indirection from 'graphColors'