c - 具有静态 const 成员的动态分配数组

标签 c arrays dynamic static nrf51

如何定义和使用动态分配的数组,其成员是static const

背景:我需要执行上述操作,以存储运行时请求的多个事务。下面的片段举例说明了如何定义事务。此代码使用 Nordic Semiicondictor nRF5x SDK。

static app_twi_transfer_t const transfers[] =
{
    APP_TWI_WRITE(MMA7660_ADDR, p_reg_addr, 1, APP_TWI_NO_STOP), 
    APP_TWI_READ (MMA7660_ADDR, p_buffer,   byte_cnt, 0)
};

static app_twi_transaction_t const transaction =
{
    .callback            = read_mma7660_registers_cb,
    .p_user_data         = NULL,
    .p_transfers         = transfers,
    .number_of_transfers = sizeof(transfers)/sizeof(transfers[0])
};

APP_ERROR_CHECK(app_twi_schedule(&m_app_twi, &transaction));

最佳答案

How can one define and use a dynamically allocated array, whose members are static const?

你不能。数组的成员必须具有与数组本身相同的存储类和链接,因此动态分配的数组不能具有静态成员。然而,这样的数组可以具有静态存储类和/或链接的副本指向对象的指针。

关于c - 具有静态 const 成员的动态分配数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35946845/

相关文章:

c# - 关于DLR的几个问题

java - 需要 JNI 或更简单的东西吗?

c++ - 更改 MSVC 中可执行文件的启动目录

c++ - 使用 NULL 值初始化内存块是否等同于 free?

java - 数组和链表: will arrays be able to allocate 300MB in memory if 512 MB is free but 300 MB is not contiguous

java - 如何将字节数组分配给枚举变量并打印它?

c# - "AsDynamic()"在哪里?

c - Boolean 是 C 中的内置枚举吗?

java - 在 For 循环中的数组中使用 Length() 方法时出错

Javascript: "Cancelling"动态脚本标签?