グローバルポインタをデータ構造に格納するメソッドがあり、ある時点でそれらをデータ構造から取り出して返そうとします.それらが問題ないことはわかっているが、コンパイラが許可しないため、それらを返すことができるようにしたい. .データ構造から取得したばかりなので、ローカルにあると思われますが、実際には外部から取得しています。
前もって感謝します
グローバルポインタをデータ構造に格納するメソッドがあり、ある時点でそれらをデータ構造から取り出して返そうとします.それらが問題ないことはわかっているが、コンパイラが許可しないため、それらを返すことができるようにしたい. .データ構造から取得したばかりなので、ローカルにあると思われますが、実際には外部から取得しています。
前もって感謝します
いいえ; コンパイラはあなたよりもよく知っています。ではないローカル変数のアドレスを安全に返すことはできませんstatic
。関数からポインタとしてグローバル変数のアドレスを返すことができますが、それはあなたがやろうとしているようには見えません。また、これを行う場合は、スレッド化の結果に注意してください (変数の値が変更された場合、スレッド化されたコードの結果は悲惨なものになります。読み取り専用 (不変で不変の値) にアクセスしている場合、それは問題ではありません)。
コンパイラに耳を傾けてください。それはあなた自身からあなたを守ろうとしています。それはあなたよりも C++ についてよく知っています。
コンパイラが間違っていることを私たちに納得させるには、あなたのコードを見せなければなりません — しかし、あなたが示したものが有効である可能性は非常に低いです.