-1

すでにいくつかのスレッドで正しい答えを検索しましたが、どこにもある正確な問題を見つけることができませんでした: プログラムで、ループ内の特定の日付で埋めたい配列を作成しました. 問題は割り当てです - 私はそれを説明する方法が本当にわからないので (私は C でのプログラミングの経験が全くありません)、コードの一部を投稿します:

int *array[] = malloc (w*h*sizeof(int));

array[i] = (SDL_MapRGB(fmt, red, green, blue));

1 行目で配列を作成し、2 行目で関数 "SDL_MapRGB" の結果 (整数) をこの配列の i 番目に実際に書きたいと思いました。(これはループの一部であるため、ループの最後で、機能する場合は配列全体を埋めます。)

そして、これは私が得ているエラーです: エラー: 代入により、キャストなしで整数からポインターが作成されます [-Werror]

どうすれば修正できるか知っている人はいますか?私はまだ(古いスレッドを読んだ後)それが何を意味するのか理解していません。私はどんな助けにもとても感謝しています:)

4

2 に答える 2

0

あなたの宣言が間違っているからです。int *array[]ポインタの配列です。1 次元配列を使用するため、必要なことはint *array、つまり括弧を削除することだけです。

于 2013-05-28T19:17:42.647 に答える
0

array[i]はポインターですが、関数SDL_MapRGB()は整数を返しますが、これが警告の理由です。

配列宣言を次のように変更します。

int *array = malloc (w*h*sizeof(int));
于 2013-05-28T19:17:44.370 に答える