配列を宣言し、2D配列をパラメータとして渡します。しかし、私は同じエラーが発生し続けます:添え字付きの値は配列でもポインタでもベクトルでもありません。この行の場合、 :vertex [i] [j-1] = shape [i] [j];C - 添え字付きの値が配列でもポインタでもベクトルでもない
どうすれば解決できますか?
ヘッダファイル:
GLfloat mijnplayer [][4] ={
{0,-0.091057,0.198079,0.084590},
{0,-0.158043,0.158043,0.071039},
{0,-0.071039,0.158043,0.158043}};
関数呼び出し:
int main(void)
{
drawVertex(mijnplayer,3,1);
}
void drawVertex(GLfloat shape[][4], int numberVertex, int shape)
{
int i,j;
GLfloat vertex[][3]={0};
//convert 4element array to 3 element array
for(i=0;i<numberVertex;i++)
{
for(j=1;j<4;j++)
{
vertex[i][j-1] = shape[i][j];
}
}
for(i=0;i<numberVertex;i++)
{
glVertex3fv(vertex[i]);
}
}
EDIT:
完全コンパイラ出力:
CC -c -o mijnTest.o mijnTest.c
mijnTest.c:59:23 23:エラー: '形状'
空隙drawVertex(GLfloat形状[] [4]、INT numberVertex、INT形) ^
mijnTest.cための相反するタイプ: 25:注: '形状' の以前の定義は、ボイドdrawVertex(GLfloat形状[] [4]、INT numberVertex、INT形) ^
mijnTest.cここ
た:関数で 'drawVertex'
mijnTest.c:43:26:エラー:添え字付きの値が配列でもポインタでもない。 ベクトル
vertex [i] [j-1] = shape [i] [j]; ^
mijnTest.c:関数で 'drawScene'
mijnTest.c:69:2:警告: 互換性のないポインタ型から 'drawVertex' の引数1を渡す[デフォルトで有効]
drawVertex(assen、6,0); ^
mijnTest.c:6:23注意:予想 'GLfloat()[4]' が、引数がタイプ である 'GLfloat()[3]'
空隙drawVertex(GLfloat形状[] [4]、INT numberVertex、INT形) ^
メイク:*** [mijnTest.o]エラー1
形状のデータ型はintです。 –
質問を編集して、コンパイラからの*完全な出力を完全かつ未編集で、可能な情報メモと警告を含めて記述できますか? –
@ JoachimPileborg、追加。 –