gpt4 book ai didi

c++ - 从 'long int' 到 'long int*' 的无效转换 -fpermissive

转载 作者:搜寻专家 更新时间:2023-10-31 01:31:50 25 4
gpt4 key购买 nike

目前正在为学校做一个项目,我得到的作业是将 C 算法转换为 C++(我大约 10 个小时前开始学习 C++,当时我得到作业)。

做一个函数我得到了错误:[错误] 从“long int”到“long int*”的无效转换 [-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;

}

我的问题是:我究竟做错了什么?我该如何解决?

最佳答案

maketest() 的返回值很长。你把那个 long 写到 c 中,它是指向 long 的指针类型。

这就是不匹配。

关于c++ - 从 'long int' 到 'long int*' 的无效转换 -fpermissive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com