【问题标题】:How to initiaze a typedef struct pointer如何初始化 typedef 结构指针
【发布时间】:2014-10-29 16:58:26
【问题描述】:

我需要初始化一个 typedef 结构指针

在头文件中,

typedef struct {
    DWORD RxBuf[4];             
    DWORD Tr0c;                 
} t, *p_t;

在cpp文件中,

static p_t p1
    = {
    {0x00,0x00,0x00,0x00},  
    0               
};

【问题讨论】:

  • 您已将p1 声明为指针,因此初始化需要是指针。
  • 你需要一些东西来让你的指针指向 to。你已经为那个东西提供了一个初始化器,而不是一个指向那个东西的指针
  • memset(g_pT, 0, sizeof(t));怎么样

标签: c++ c pointers struct typedef


【解决方案1】:

只是一个猜测,相信你想这样做:

static t tNull
    = {
    {0x00,0x00,0x00,0x00},  
    0               
};

static p_t p1 = &tNull;

【讨论】:

  • @RaydelMiranda:如果您希望此指针类型指向它,则不是。 (为什么要定义这种指针类型是另一回事,但这就是 OP 所要求的。)
【解决方案2】:

p_t 是一个指针,因此您必须将其指向t 类型的有效对象。

您可以制作对象并指向它:

t var = { { 1 , 2 , 3 , 4 } , 5  } ;
p_t pointer = &var ;

或者使用复合文字:

p_t pointer = &( t ){ { 1 , 2 , 3 , 4 } , 5  } ;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多