scoreGridはScore **でスコア10 *で作成されます。私はスコアの各*を初期化しようとしています、ランクという名前のバイナリファイルから読み込みます。スコアはintとchar [7]を持つシンプルな構造体です。"割り当ての左オペランドに[エラー] lvalueが必要です。
Score** scoreGrid;
scoreGrid = (Score**)calloc(1,sizeof(Score*)*10);
if(!scoreGrid){
endOnScore();
}
int res, i, j;
for(i=0;i<10;i++){
((*scoreGrid) + i * sizeof(Score*)) = (Score*)malloc(sizeof(Score)); //[Error] lvalue required as left operand of assignment
if(!(*scoreGrid + i * sizeof(Score*))){
endOnScore();
}
res = fread((*scoreGrid + i * sizeof(Score*)),sizeof(Score),1,rank);
printf("res: %d\n", res);
if(res == 0){
free((*scoreGrid + i * sizeof(Score*)));
break;
}
}
私はエラーがどこにあるのかコメントしました。多分もっと良い解決策がありますか?ありがとう!
インデックス付きアドレッシングに対しては何がありますか? –
割り当ての左側の値は、意図した値ではありません。 * scoreGridはscoreGrid [0]と同じで、最初のポインタを返します。逆参照の前に追加する必要があります。 – pticawr
デバッガを使用して見つけてください – Anjaneyulu