0

グローバルポインタをデータ構造に格納するメソッドがあり、ある時点でそれらをデータ構造から取り出して返そうとします.それらが問題ないことはわかっているが、コンパイラが許可しないため、それらを返すことができるようにしたい. .データ構造から取得したばかりなので、ローカルにあると思われますが、実際には外部から取得しています。

前もって感謝します

4

1 に答える 1

1

いいえ; コンパイラはあなたよりもよく知っています。ではないローカル変数のアドレスを安全に返すことはできませんstatic。関数からポインタとしてグローバル変数のアドレスを返すことができますが、それはあなたがやろうとしているようには見えません。また、これを行う場合は、スレッド化の結果に注意してください (変数の値が変更された場合、スレッド化されたコードの結果は悲惨なものになります。読み取り専用 (不変で不変の値) にアクセスしている場合、それは問題ではありません)。

コンパイラに耳を傾けてください。それはあなた自身からあなたを守ろうとしています。それはあなたよりも C++ についてよく知っています。

コンパイラが間違っていることを私たちに納得させるには、あなたのコードを見せなければなりません — しかし、あなたが示したものが有効である可能性は非常に低いです.

于 2013-09-22T03:07:54.803 に答える