当前正在为学校做一个项目,我得到的任务是将C算法转换为C++(大约10小时前我开始学习C++,当我得到了任务)。从'long int'无效转换为'long int *'-fpermissive
做一个功能我得到的错误: [错误]无效的转换,从“长整型”到“长整型*” [-fpermissive]
我在这里打造了在testInstance功能
使用全局变量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”。更多在这里:https://stackoverflow.com/questions/3207018/register-keyword-in-c – user4581301
圣指针,蝙蝠侠! –