問題タブ [pointer-aliasing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonでリストの一部のエイリアスを作成する
Pythonでリストの一部のエイリアスを取得する方法はありますか?
具体的には、これと同等のことが起こることを望みます:
しかし、私が得るのはこれです:
c - 厳密なエイリアシングと char* による int の書き込み
古いプログラムでは、unsigned char の配列を割り当ててデータ構造をバイトにシリアル化し、次のように int に変換しました。
(p
は 、 はunsigned char*
保存value
する値です)。
これは問題なく動作しましたが、Sparc でコンパイルすると、不適切なアラインメントでメモリにアクセスしたために例外がトリガーされました。データ要素のサイズがさまざまであるため、p
すぐに整列されなくなり、基になる Sparc 命令で整列が必要な int 値を格納するために使用されるとエラーが発生したため、これは完全に理にかなっています。
これはすぐに修正されました (値を char-array にバイト単位で書き出すことにより)。しかし、私はこの構造を何年にもわたって多くのプログラムで問題なく使用してきたので、これについて少し心配しています。しかし、明らかに私はいくつかの C ルール (厳密なエイリアシング?) に違反しています。このケースは簡単に発見されましたが、おそらく違反は、コンパイラーの最適化などにより、より微妙な他のタイプの未定義の動作を引き起こす可能性があります。このような構造は、長年にわたって多くの C コードで見てきました。ハードウェアによって交換されるデータ構造を構造体として記述し (もちろん pack(1) を使用)、それらを h/w レジスタなどに書き込むハードウェア ドライバーを考えています。したがって、一般的な手法のようです。
したがって、私の質問は、まさに上記によって違反されたルールと、ユースケースを実現するための適切な C の方法 (つまり、unsigned char の配列へのデータのシリアル化) です。もちろん、すべての関数に対してカスタムのシリアル化関数を記述して、バイト単位で書き出すことができますが、面倒であまり効率的ではないように思えます。
最後に、一般に、このエイリアシング規則に違反することによって、悪影響 (アライメントの問題以外) が予想される可能性はありますか?
java - Node を LinkedList に追加するとき、舞台裏 (ヒープ、スタックなど) はどうなりますか?
編集:YouTube を検索しましたが、リンクリストとヒープについて何もありません ガベージ コレクターはいつワイプしtemp
ますか? 私はそれが必要であることを知っていますが、どこにあるのかわかりません。
私はそれを理解するのに苦労しています。直感的に私はただ書くだろう
それが正しくないことはわかっていますが、要点を理解するには、オブジェクトとアドレスで何が起こっているのかを理解する必要があると感じています...
最初の行: temp を作成し、_head が指す同じアドレスを指し
ます
。
私は正しいですか
java - アルゴリズム、第 4 版: エイリアシング/参照に関する例が理解できない
クラス コード リンク: https://introcs.cs.princeton.edu/java/33design/Counter.java
この本には「2ones」を印刷すると書かれており、そのプロセスは上の写真に示されています。しかし、私はそれを得ることができません。私の意見では、c1 が加算され、そのオブジェクトが加算されるため、"2" が得られます。次に、c1 を c2 にコピーすると、c2 も "2" を取得します。c2 が追加されると、オブジェクトは未知の次のグリッドに変わります。c1 を印刷するときは、「2ones」ではなく「2」を取得する必要があると思います。では、私のプロセスの何が問題なのですか? 前もって感謝します。