Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 警告:赋值从指针生成整数而不强制转换[默认启用]_C_Pointers_Casting_Warnings - Fatal编程技术网

C 警告:赋值从指针生成整数而不强制转换[默认启用]

C 警告:赋值从指针生成整数而不强制转换[默认启用],c,pointers,casting,warnings,C,Pointers,Casting,Warnings,有一个警告,我无法从此代码中删除它。这是我可以提供的代码: %{ #include <stdlib.h> #include <stdio.h> #include "y.tab.h" %} %% [1-9]+ { yylval.iVal = atoi(yytext); printf("NUMBER\n"); r

有一个警告,我无法从此代码中删除它。这是我可以提供的代码:

%{
#include <stdlib.h>
#include <stdio.h>
#include "y.tab.h"
%}

%%

[1-9]+          {
                        yylval.iVal = atoi(yytext);
                        printf("NUMBER\n");
                        return NUMBER;
                }
[a-z]           {
                        printf("VARIABLE\n");
                        yylval.cVal = yytext;
                        return VARIABLE;
                }
[-()<>=+/*\n]   {
                        printf("OPERATOR\n");
                        return *yytext;
                 }
"^"             {
                        printf("POW\n");
                        return *yytext;
                }
[ \t]+          ;      // Skip whitespaces.
.               yyerror("Unknown character.\n");

%%

int yywrap(void)
{
     return 1;
}
%{
#包括
#包括
#包括“y.tab.h”
%}
%%
[1-9]+          {
yylval.iVal=atoi(yytext);
printf(“编号”);
返回号码;
}
[a-z]{
printf(“变量\n”);
yylval.cVal=yytext;
返回变量;
}
[-()=+/*\n]{
printf(“操作员”);
返回*文本;
}
"^"             {
printf(“POW\n”);
返回*文本;
}
[\t]+;//跳过空白。
.               yyerror(“未知字符。\n”);
%%
int-yywrap(无效)
{
返回1;
}

我得到了这部分的警告:
yylval.cVal=yytext。怎么会出错呢?提前谢谢。

您在联盟中设置了什么cVal?什么类型是
yylval.cVal
?我们怎么能猜到呢?问题在于
yylval.cVal
yytext
的类型不兼容。由于
yytext
是数组或指针(因此在赋值的RHS上,它被视为指针),因此可以推测
yylval.cVal
是非指针类型。也许您想要
yylval.cVal=yytext[0]?或者,您可能真的需要复制字符串并修复
yylval.cVal
的类型。可能的