初始化指向常量数组的指针。

我想避免使用临时变量。但我搞不清楚正确的语法。

typedef struct {
  int n;
  int *ptr;
} i_cant_change_this_typedef;

i_cant_change_this_typedef foo;
i_cant_change_this_typedef bar;


int main(void) {
  foo.n = 123;
  int tmp[] = {0x01,0x02,0x03};
  foo.ptr = tmp;

  bar.n = 321;

/* can this be done somehow? */
/*  bar.ptr = {0x03,0x02,0x01};*/
}

它让我很不爽,因为我必须建立中间的临时变量。底部的注释行应该显示了我要做的事情。

可以做到吗,怎么做?

啊,对了,我这里用的是普通的gccg++。

UPDATE:我知道我应该提到,我更希望有一个在C和C++中同样有效的解决方案。它要用在一个嵌入式解决方案中,应该避免太复杂的动态分配。

解决方案:

你可以创建一个 复数字面 并让指针指向该处。

bar.ptr = (int []){0x03,0x02,0x01};

给TA打赏
共{{data.count}}人
人已打赏
未分类

java "main "线程中的异常(已解决)[重复]。

2022-9-8 7:09:42

未分类

有没有办法让图形打在pyplot中的方框边界上?

2022-9-8 7:09:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索