現在、学校向けのプロジェクトを行っており、CアルゴリズムをC++に変えることが課題でした(約10時間前にC++を学び始めました。割り当てを得た)。'long int'から 'long int *'に変換できませんでした。-fpermissive
私はエラーを得た機能行う:私はtestInstance機能
に使われているグローバル変数を作成[-fpermissive】ここでを [エラー]「long int型*」から「long int型」から無効な変換を
static long *c; // total capacity
これはエラーが発生した機能です。
void testInstance (Exitem **f, Exitem **l, int n, int r, int type, int v){
Exitem *a;
*f = a;
*l = &a[n-1];
c = maketest(*f, *l, type, r, v);
}
これは関数maketest(私にエラーを与える行で呼び出されます)です。
long maketest (Exitem *F, Exitem *L, int type, int r, int v){
register Exitem *J;
register long sum;
long c;
short r1;
sum = 0;
r1 = r/10;
for (J = F; J <= L; J++){
J->w = (longRand() % (r));
switch (type){
case 1:
J->p = (longRand() % (r)) + 1;
break;
case 2:
J->p = (longRand() % (2*r1+1)) + J->w - r1;
if (J->p <= 0)
J->p = 1;
break;
case 3:
J->p = J->w + 10;
break;
case 4:
J->p = J->w;
break;
}
sum += J->w;
}
c = sum/2;
return c;
}
私の質問は間違っていますか?どうすれば修正できますか?
興味深い事実: 'register'は本当にそれほど多くはありません。コンパイラがうまくいく場合、 'register'は完全に無視されます。 More here:https://stackoverflow.com/questions/3207018/register-keyword-in-c – user4581301
聖なる指針、バットマン! –