ToBeAITer 2022-06-06 20:27 采纳率: 0%
浏览 102
已结题

结构体中不定长数组元素初始化

有如下代码,请帮忙看下这里柔性数组的定义是否可行,有无风险。目的是为了实现结构体中不定长数组元素的初始化。感谢指导!

typedef struct
{
  uint8_t fileNo;
  uint8_t attr;
  uint8_t status;
} S_FILE;

typedef struct
{
  uint32_t length
  S_FILE fileInfo[];  // 这里使用柔性数组结合length初始化成变长数组是否可行?
} S_FILE_DATA;

S_FILE_DATA gFileData[MAX_PARTITION_CNT]; // 全局变量

void FileInfoInit(S_FILE *file, uint32_t lenght)
{
  for (int i = 0; i < length; i++)
  {
    file[i].fileNo = i;
    file[i].attr = i * 2;
    file[i].status = 0;
  }
}

int main(void)
{
  for (int partitionId = 0; partitionId  < MAX_PARTITION_CNT; partitionId  ++)
  {
    FileInfoInit(&gFileData[partitionId].fileInfo[0], 32 + partitionId  );
  }
  return 0;
}

  • 写回答

1条回答 默认 最新

  • ToBeAITer 2022-06-07 09:04
    关注

    之所以这样做是不想动态malloc,我自己本地尝试编译运行是没问题的,不过这么用不管是数组还是指针未初始化感觉好像都有风险

    评论

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 创建了问题 6月6日

悬赏问题

  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 Ubuntu20.04无法连接GitHub
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子