C 初始化指向结构的指针时出现无效的初始值设定项错误

C 初始化指向结构的指针时出现无效的初始值设定项错误,c,C,我正在为USBbootloader编写代码。当我编译代码时,我得到了以下两个错误: Invalid Initializer 错误涉及以下代码行: static volatile usb_internal_sram_t sr; static volatile usb_internal_sram_t usb_sram = &sr; usb_control_t ctr; static usb_control_t usb_ctrl = &

我正在为
USB
bootloader编写代码。当我编译代码时,我得到了以下两个错误:

Invalid Initializer
错误涉及以下代码行:

static volatile usb_internal_sram_t sr;         
static volatile usb_internal_sram_t usb_sram = &sr;

usb_control_t ctr;                  
static usb_control_t usb_ctrl = &ctr;

在有人建议
malloc()
之前,这是一个嵌入式系统。不建议动态内存分配,因为它会降低系统速度。因此,这就是我试图以这种方式初始化
struct
指针的原因。我认为这种方法可以,但显然不行。有人有什么想法吗?提前谢谢你

您缺少
*
令牌来声明您的
usb\u sram
usb\u ctrl
对象作为指针

static volatile usb_internal_sram_t sr;
static volatile usb_internal_sram_t usb_sram = &sr;
你可能是说

static volatile usb_internal_sram_t sr;
static volatile usb_internal_sram_t* usb_sram = &sr;

“初始化指针”?指针在哪里???我看不到在代码中声明任何指针。为什么要用指针值初始化结构对象?哇,我是个白痴。我完全没有注意到我忘记了*。你会接受这个答案吗?这样做是正确的。