我已经为我的代码库运行了质量分析控件,我对看到的一些错误值有疑问,如下所示:
这只是代码提取
typedef struct UISR_caller_info_s/*structure declaration*/
{
unsigned char number[20];
unsigned char Name[30];
unsigned int numberType;
} caller_t;
static caller_t gs_val;/*variable of the structure type*/
错误:
2027: strcpy((char *)gs_val.Name, NULL);
^
Msg(2:0310) Casting to different object pointer type.
REFERENCE - ISO:C90-6.3.4 Cast Operators - Semantics <next>
错误显示在char *类型转换中,我真的不知道为什么会发生这种情况。 请让我知道如何避免这种错误
由于 GNR
答案 0 :(得分:0)
首先,strcpy
调用可能会导致分段错误(肯定导致未定义的行为) - 您可能不希望NULL
用于第二个参数。无论如何你都不需要演员阵容:
strcpy(gs_value.Name, "");
工作正常,可能就是你的意思。可能是你的编译器非常挑剔,并且抱怨从unsigned char
到char
的演员表 - 你可以通过适当地改变你的结构来解决这个问题。