私はこの質問をしました:ベアストリングと同等の配列
答えは 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ています。
これを達成する方法はありますか?