int*到常量数组

Jon*_*Mee 2 c++ arrays pointers const quotation-marks

我问了这个问题:Bare-String的数组等价物

答案是C++没有为const int*s 提供此功能.这是令人失望的.所以我的问题是:在实践中如何解决这个限制?

我想写一个像这样的结构:

struct foo{
    const char* letters = "abc";
    const int* numbers = ???
};
Run Code Online (Sandbox Code Playgroud)

我不能:

  1. &{1, 2, 3} 因为我不能取r值的地址
  2. array<int, 3>{{1, 2, 3}}.data() 导致初始化后立即清理内存
  3. const int* bar(){ return new int[3]{1, 2, 3}; } 因为什么都不会删除这个指针

我知道我可以使用自动指针来解决这个问题.我并不是说这struct foo是好代码,我试图说明编译器提供了将const数组"abc"存储在内存中并在程序退出时清理它的规定,我希望有一种方法可以为ints 执行此操作.

有没有办法实现这个目标?

Mik*_*ine 6

你指向一个静态的怎么样 - 我认为这就是编译器内部"strings literals"无论如何都要做的事情?

static const int Numbers[] = {1, 2, 3};

struct foo{
    const char* letters = "abc";
    const int* numbers = Numbers;
};
Run Code Online (Sandbox Code Playgroud)