C语言中的去引用问题
当我尝试编译下面的代码时,会出现以下错误: 错误C2440:“>=”:无法从“double*”转换为“double” 错误C2440:“>=”:无法从“double*”转换为“double” 我相信我在正确地解引用所有内容C语言中的去引用问题,c,data-structures,memory-management,C,Data Structures,Memory Management,当我尝试编译下面的代码时,会出现以下错误: 错误C2440:“>=”:无法从“double*”转换为“double” 错误C2440:“>=”:无法从“double*”转换为“double” 我相信我在正确地解引用所有内容 #define TRUE 1 #define FALSE 0; #include <stdio.h> typedef struct Con{ double samTime[2]; double sen[2]; int test[2]; } CON,
#define TRUE 1
#define FALSE 0;
#include <stdio.h>
typedef struct Con{
double samTime[2];
double sen[2];
int test[2];
} CON, *CON_PTR;
void GM(double **TTXY) {
int NoS;
int numOfSen = 2;
int startTime =0;
CON con;
if((con = (CON_PTR) malloc(numOfSen*sizeof(CON)))==NULL) {
printf(“Malloc failed\n”);
exit(1);
}
for (NoS=0;NoS<numOfSen;NoS++) {
con[NoS].samTime[0] = startTime;
con[NoS].samTime[1] = startTime;
con[NoS].sensor[0] = 0;
con[NoS].sensor[1] = 0;
con[NoS].test[0] = FALSE;
con[NoS].test[1] = FALSE;
}
if (con[NoS].samTime[0] >= TTXY[1]) {
con[NoS].test[0] = TRUE;
}
if (con[NoS].samTime[1] == TTXY[1]) {
con[NoS].test[1] = TRUE;
}
}
#定义真1
#定义假0;
#包括
类型定义结构Con{
双samTime[2];
双森[2];
int检验[2];
}CON,*CON_PTR;
无效GM(双**TTXY){
国际编码;
int numOfSen=2;
int startTime=0;
康康;
if((con=(con_PTR)malloc(numOfSen*sizeof(con)))==NULL){
printf(“Malloc失败\n”);
出口(1);
}
对于(NoS=0;NoS=TTXY[1]){
con[NoS]。测试[0]=真;
}
if(con[NoS].samTime[1]==TTXY[1]){
con[NoS]。测试[1]=真;
}
}
TTXY被声明为double**,因此TTXY[1]是double*,而不是double,因此您无法将TTXY[1]与con[NoS]进行比较。samTime[0]
我猜可能是您在函数头中输入了错误,请尝试将其修改为空main(double*TTXY)?TTXY声明为double**,因此TTXY[1]是double*,而不是double,因此您无法将TTXY[1]与con[NoS]进行比较。samTime[0]
我猜可能是你的函数头有输入错误,试着修改它使main无效(double*TTXY)?为什么你的主函数有签名
(int)(double**)
要成为有效的C程序,main必须具有以下签名:
(int)(int, char**)
如果您希望main以另一种方式处理它的参数,那么您需要自己转换它们 为什么您的主函数有签名
(int)(double**)
要成为有效的C程序,main必须具有以下签名:
(int)(int, char**)
如果您希望main以另一种方式处理它的参数,那么您需要自己转换它们 首先,缺少一个分号
int NoS
你的主要功能不正确,这一定是
int main()
int main(int argc, char **argv)
void main() // not standard but allowed by some compilers (with warning)
至于你的问题,不,你没有正确地去引用它,因为你的TTXY
数组是二维的。所以应该是这样的
if (con[NoS].samTime[0] >= TTXY[1][some other number]) {
任何适合你的代码的东西。如果其他人应该理解代码,那么应该为变量使用更多描述性名称
如果
TTXY
应该是一个一维数组,那么您不需要通过引用(function(&TTXY)
)传递它,传递指针值(function(TTXY)
)就足够了,可读性也更高。首先,缺少一个分号
int NoS
你的主要功能不正确,这一定是
int main()
int main(int argc, char **argv)
void main() // not standard but allowed by some compilers (with warning)
至于你的问题,不,你没有正确地去引用它,因为你的TTXY
数组是二维的。所以应该是这样的
if (con[NoS].samTime[0] >= TTXY[1][some other number]) {
任何适合你的代码的东西。如果其他人应该理解代码,那么应该为变量使用更多描述性名称
如果
TTXY
应该是一个一维数组,那么您不需要通过引用(function(&TTXY)
)传递它,传递指针值(function(TTXY)
)就足够了,可读性也更高。程序中有四个语法错误
整数编号
-缺少分号con
-使用前未声明此变量传感器
不是struct Con
的成员TTXY
是指向double的指针而不是指向double的指针,因此您应该使用*TTXY[1]
通过TTXY
双指针数组中的第一个双指针访问第一个双点main
函数的标准格式,但不定义自己的版本。main
函数的正常版本应该是int main(void)
或int main(int argc,char*argv[])
程序中有四个语法错误
整数编号
-缺少分号con
-使用前未声明此变量传感器
不是struct Con
的成员TTXY
是指向double的指针而不是指向double的指针,因此您应该使用*TTXY[1]
通过TTXY
双指针数组中的第一个双指针访问第一个双点main
函数的标准格式,但不定义自己的版本。main
函数的正常版本应该是int main(void)
或int main(int argc,char*argv[])
张贴实际代码。您发布的示例中没有定义
con
或TTXY
。此外,行int NoS
格式不正确。#定义FALSE包含分号是一个等待发生的错误。发布实际代码。您发布的示例中没有定义con
或TTXY
。此外,行int-NoS
格式不正确。#定义FALSE包含分号是一个等待发生的错误。@anon我建议您更改函数名,因为使用“main”可能会导致歧义。main
的唯一标准签名是:int-main(void)
和int-main(int-argc,char**argv)
void main(double**TTXY)
永远不会工作。@anon我建议您更改函数名,因为使用“main”可能会导致歧义。main
的唯一标准签名是:int main(void)
和int main(int argc,char**argv)
<代码>无效主(双**TTXY)将永远无法工作。