You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MISRA C 11.2违规修复咨询:数组与指针类型转换问题

问题:MISRA C 11.2违规修复方案(数组指针赋值问题)

我在头文件array.h中声明数组,array.c中定义数组,main.c中使用该数组,代码片段如下:

array.h

typedef struct
{
    uint16  Identifier;
    uint16  Data;

} array_struct_type ;
extern const array_struct_type myarray[];

array.c

const array_struct_type myarray[] =
{
    {0x01u, 0u},
    {0x01u, 0u},
};

main.c

#include "array.h"
static array_struct_type * pArray;
pArray = myarray;

将数组地址赋值给指针时,触发了MISRA C 11.2违规:不得在指向不完整类型的指针与其他类型之间进行转换。

我尝试了以下两种写法,但问题仍未解决:

pArray = (array_struct_type * )myarray;
pArray = &myarray[0];

目前仅通过禁用MISRA编译指令解决该问题,希望找到更合规的修复方案。

内容的提问来源于stack exchange,提问作者Jee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 12:34:51