私はこの質問をしました:ベアストリングと同等の配列
答えは C++ で、s に対してこの機能を提供していませんconst int*
。これは残念です。したがって、私の質問は次のとおりです。実際には、この制限をどのように回避できますか?
次のような構造体を書きたいと思います。
struct foo{
const char* letters = "abc";
const int* numbers = ???
};
私はできません:
&{1, 2, 3}
r値のアドレスを取得できないためarray<int, 3>{{1, 2, 3}}.data()
初期化直後にメモリがクリーンアップされる原因const int* bar(){ return new int[3]{1, 2, 3}; }
このポインターは何も削除されないため
自動ポインターを使用してこれを回避できることを知っています。私はそれstruct foo
が良いコードであることを示唆しているわけではありません。コンパイラが const 配列"abc"
をメモリに格納し、プログラムの終了時にそれをクリーンアップするように規定していることを説明しようとしint
ています。
これを達成する方法はありますか?