繁体   English   中英

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

[英]initialize pointer to an array of constants

我试图避免临时变量。 但我无法弄清楚正确的语法:

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};*/
}

我不得不制作中间 tmp 变量,这让我很烦恼。 底部的注释行应该显示我正在尝试做的事情。

可以做到吗,怎么做?

啊,是的,我在这里使用常规的 gcc/g++。

更新:我知道我应该提到我更喜欢在 C 和 C++ 中同样有效的解决方案。 它将用于应避免过于复杂的动态分配的嵌入式解决方案。

您可以创建一个复合文字并让指针指向它:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM